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

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的嵌套,可以根据这个思路添加功能

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值