ASP.net中Datagrid的应用

本文介绍如何在ASP.NET Web应用程序中实现数据分页显示和动态排序功能,包括使用DataGrid控件、DropDownList控件及Button控件,通过连接Access数据库并编写相应的C#代码来完成数据绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、我们建立一个webform.aspx文件。

2、在webform中添加Datagrid控件,DropDownList控件,Button控件。

3、建立一个Access数据库的.mdb文件,适当地填写数据。

4、在对应.cs文件中填写这段代码,如下:

  private OleDbConnection conn;
  private OleDbDataAdapter da;
  private DataSet ds = new DataSet() ;
  private DataView dv;

 
  protected void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   if (!IsPostBack)
   {
    //使用ViewState保存页面中的排序字段名
    if (ViewState["SortField"]==null)
    {
     ViewState["SortField"] = "index";
    }
    //调用BindGrid函数完成绑定数据
    BindGrid(ViewState["SortField"].ToString ());
   }

  }

  private void BindGrid(string SortField)
  {
   //new a dbconnection,数据库为db目录下的mydb.mdb
   //string connstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
   //      + Server.MapPath(@"./db/mydb.mdb")
   //            + ";Mode=Share Deny None;Persist Security Info=False";
            string connstr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
                           + Server.MapPath(@"./db/mydb.mdb");
                         
   conn = new OleDbConnection(connstr);
   //创建sql语句
   string sql = "SELECT * FROM mytable";
   //创建dataadapter
   da = new OleDbDataAdapter(sql,conn);
   //填充dataset
            da.Fill(ds, "my");
            dv = ds.Tables["my"].DefaultView;
   //dataview的排序字段
   dv.Sort = SortField;
   //绑定DataGrid1
   DataGrid1.DataSource = dv;
   DataGrid1.DataBind ();
  }


  #region Web Form Designer generated code
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
   this.DataGrid1.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGrid1_SortCommand);

  }
  #endregion

  private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
  {   
   //如果已经按照当前字段排序,就反序排列,否则进行排序
   //当前排序字段记录在ViewState["SortField"]中
   if (ViewState["SortField"].ToString () == e.SortExpression )
   {
    BindGrid(e.SortExpression + " DESC");
    ViewState["SortField"] = "";
   }
   else
   {
    BindGrid(e.SortExpression );
    ViewState["SortField"] = e.SortExpression ;
   }

  
  }

  private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  {
   //设置新的当前页号,重新绑定数据
   DataGrid1.CurrentPageIndex = e.NewPageIndex ;
   BindGrid(ViewState["SortField"].ToString ());

  }

  protected void Button1_Click(object sender, System.EventArgs e)
  {
   if (int.Parse (ddPageSize.SelectedItem.Value) == 0)
   {
    DataGrid1.AllowPaging = false;
   }
   else
   {
    DataGrid1.AllowPaging = true;
    DataGrid1.PageSize = int.Parse (ddPageSize.SelectedItem.Value) ;
    DataGrid1.CurrentPageIndex = 0;
   }
   BindGrid(ViewState["SortField"].ToString ());

  }

5、然后你用ie浏览.aspx文件,在下拉菜单中选择页size大小,点击button来设置。

6、点击标题,进行排序。

7、你也试试吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值