2013-03-12 122 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; 
相關問題