2013-03-12 5 views
1

Я делаю проект в asp.net 3.5 (C#), где я использовал GridView внутри другого GridView. Проблема, однако, в том, что я не знаю, как использовать событие PageIndexChanging для Child GridView. Любой, у кого есть решение, пожалуйста, помогите мне .. !! Заранее спасибо .. я отправляю код, который заполняет две сетки ..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 s программно в том же цикле (где вы привязки данных к ним). Обратите внимание, что это предполагает, что вы хотите, чтобы обрабатывать их все с одной и той же функции:

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; 
Смежные вопросы