ITPub博客

首页 > 应用开发 > IT综合 > ASP.NET(C#)中的DataGrid的嵌套

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

原创 IT综合 作者:coolnan77 时间:2007-02-05 15:27:33 0 删除 编辑

De_MainList为DataGrid1的ID
De_ArticleList为DataGrid2的ID

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

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

[@more@]

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


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=623649

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8355261/viewspace-897407/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    14
  • 访问量
    22574