2013-03-12 124 views
1

我正在做一个asp.net 3.5(c#)中的项目,我在另一个GridView中使用了一个GridView。 然而,问题是,我不知道如何使用子GridView的PageIndexChanging事件..任何人有解决方案,请帮助我..!在此先感谢.. 我上传填充两个网格的代码..PageIndexChanging在另一个GridView中的GridView

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

您可以将事件处理程序连接到您的子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) 
{ 

} 

您可以将“发件人”变量转换回GridView来检查它,并找出哪个子GridView解雇了事件,我想。像这样的东西应该工作:

GridView currentGrid = (GridView)sender; 
相关问题