我在asp.net 3.5(c#)中做了一个项目,我在另一个GridView中使用了GridView。 然而,问题是我不知道如何使用Child GridView的PageIndexChanging事件..任何有解决方案的人都可以帮助我.. !!提前致谢.. 我正在上传填充两个网格的代码..
private void dynamic_GV1()
{
DataSet ds_news_details = new DataSet();
DataSet ds_pic_preview = new DataSet();
ds_news_details = BL_News.News_Details_Top10_Select();
if (ds_news_details.Tables[0].Rows.Count > 0)
{
GridView1.DataSource = ds_news_details;
GridView1.DataBind();
int counter;
for(counter = 0 ; counter < ds_news_details.Tables[0].Rows.Count; counter++)
{
GridView gv_pic = (GridView)GridView1.Rows[counter].FindControl("GridView2");
ds_pic_preview = BL_News.News_Pictures_Select(Convert.ToInt32(ds_news_details.Tables[0].Rows[counter][0].ToString()));
gv_pic.DataSource = ds_pic_preview;
gv_pic.DataBind();
}
}
}
答案 0 :(得分:0)
您可以在同一个循环中(您将数据绑定到它们)以编程方式将事件处理程序附加到子GridView
。请注意,这假设您希望使用相同的函数处理它们:
for(counter = 0 ; counter < ds_news_details.Tables[0].Rows.Count; counter++)
{
GridView gv_pic = (GridView)GridView1.Rows[counter].FindControl("GridView2");
// Attach event handler here
gv_pic.PageIndexChanging += yourEventHandlerName;
ds_pic_preview = BL_News.News_Pictures_Select(Convert.ToInt32(ds_news_details.Tables[0].Rows[counter][0].ToString()));
gv_pic.DataSource = ds_pic_preview;
gv_pic.DataBind();
}
其中“ yourEventHandlerName ”是您要用作PageIndexChanging事件处理程序的函数的名称:
protected void yourEventHandlerName(Object sender, GridViewPageEventArgs e)
{
}
你可以将“sender”变量强制转换回GridView来检查它,并找出哪个子GridView
解雇了这个事件,我想。这样的事情应该有效:
GridView currentGrid = (GridView)sender;