ASP.NET(C#)中的DataGrid的嵌套。

来源:互联网 发布:乐视事件始末知乎 编辑:程序博客网 时间:2024/04/29 05:14

De_MainList为DataGrid1的ID
De_ArticleList为DataGrid2的ID

在DataGrid1中必须添加DataKeyField="ID"参数ID 为主表的和次表的关联字段。

首先在InitializeComponet()中添加下面代码

  private void InitializeComponent()
  {
   this.Load += new System.EventHandler(this.Page_Load);
   this.De_MainList.ItemDataBound += new DataGridItemEventHandler(this.De_MainList_ItemDataBound);
  }

Page_Load事件里添加代码

  private void Page_Load(object sender, System.EventArgs e)
  {
   if(!Page.IsPostBack)
   {
    De_MainListBind();
   }
  }

写一个方法来获取DataSet,返回DataSet

  private DataSet GetDataSet(string sql)
  {
   SqlConnection connstring = new SqlConnection(ConfigurationSettings.AppSettings["RCConn"]);
   SqlDataAdapter sda = new SqlDataAdapter(sql , connstring);
   DataSet ds = new DataSet();
   sda.Fill(ds);
   return ds;
  }

绑定DataGrid1

  private void De_MainListBind()
  {
   string sql = "select * from MainList";
   DataSet ds = GetDataSet(sql);
   this.De_MainList.DataSource = ds;
   this.De_MainList.DataBind();
  }

当数据绑定到DataGrid1时发生触发面的函数

  private void De_MainList_ItemDataBound(object sender , DataGridItemEventArgs e)
  {
//暂时不明白什么意思
   if (e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
   { 
    string sql="select * from ArticleList where Partent="+this.De_MainList.DataKeys[e.Item.ItemIndex].ToString();
    DataSet ds=GetDataSet(sql);
//暂时不明白什么意思
    DataGrid grid = (DataGrid)e.Item.FindControl("De_ArticleList");
    grid.DataSource=ds;
    grid.DataBind();
   }
  }

 

这些代码仅简单的实现了两个DataGrid的嵌套,可以根据这个思路添加功能

 

原创粉丝点击