ASP.net中Datagrid的应用

翻译|其它|编辑:郝浩|2007-10-17 15:03:04.000|阅读 698 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

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、点击标题,进行排序。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:csdn

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP