PageIndexChanging另一个GridView内部的GridView

时间:2013-03-12 18:23:57

标签: c# asp.net page-index-changed

我在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();
        }
    }
}

1 个答案:

答案 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;