2013-07-15 2 views
1


Мое требование состоит в том, чтобы показать все страны из базы данных, и для каждой страны я должен отображать соответствующие состояния.
Итак, для отображения всех стран, в которых я использовал DataList. Функция OnItemDataBound этого `DataLIst Я привязал gridview для отображения своих соответствующих состояний.
Теперь, я хочу дать разбивку на страницы для этого внутреннего gridview, который находится в datalist.
Я не знаю, как обращаться с сетчатой ​​сеткой, находящейся внутри каталогистата.
Пагинация GridView, которая находится внутри DataList

Я переплетены вид сетки, как,

protected void dataListCountries_OnItemDataBound(object sender, DataListItemEventArgs e) 
{  
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     HiddenField hdn = (HiddenField)e.Item.FindControl("hdnCountryID"); 
     GridView grd = (GridView)e.Item.FindControl("grdDetails"); 

     objCountries = new Countries(); 
     lstCountries = objCountries.getallCountries(); 
     grd.DataSource = lstCountries ; 
     grd.DataBind(); 
    } 
} 

Пожалуйста, любой из вас обеспечить решение для меня. Заранее спасибо.

+0

Вы можете сделать это, используя свойство NamingContainer – Gangadhar

+0

, можете ли вы поместить свой код привязки в скрипту/здесь, чтобы было легко ответить – Gangadhar

+0

@Gangadhar. Я передал код привязки сетки. После проверки .. –

ответ

2

Если вы связываете gridview с некоторым входным параметром из элемента datalist, вам нужно иметь ярлык, чтобы удерживать его в datalist.

protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     try 
     { 
      GridView gv = (sender as GridView); 
      DataListItem DLItem= (DataListItem)gv.NamingContainer; 
      //Label Id = (Label)DLItem.FindControl("lblId"); 

      gv.PageIndex = e.NewPageIndex; 

      //Your gridbinding code 
    HiddenField hdn = (HiddenField)DLItem.FindControl("hdnCountryID"); 
    //GridView grd = (GridView)e.Item.FindControl("grdDetails"); 

    objCountries = new Countries(); 
    lstCountries = objCountries.getallCountries(); 
    gv .DataSource = lstCountries ;//lstOrders; 
    gv .DataBind(); 

     } 
     catch (Exception ex) 
     { 

      // return; 
     } 

    } 

Включенный код привязки сетки. Я думаю, что вы не используете значение скрытого поля для привязки сетки. И я думаю, вам нужно привязать сетку к lstCountries, а не lstOrders.

+0

Thanx @Gangadhar. Это сработало для меня .. –

1

Вы можете попробовать это , в котором г.в. является GridView и NamingContainer является DataList, который является родителем datasettable является данные, которые будут связывать clsCommon.GridViewPopulate для biinging сетки Я надеюсь, что это полезно записи в pageindexchanging свойству

protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     try 
     { 
      GridView grd= (sender as GridView); 
      GridViewRow gvrow = (GridViewRow)grd.NamingContainer; 

      objCountries = new Countries(); 
    lstCountries = objCountries.getallCountries(); 
    grd.DataSource = lstOrders; 
    grd.DataBind(); 

      gv.PageIndex = e.NewPageIndex; 


     } 
     catch (Exception ex) 
     { 

      return; 
     } 

    } 
Смежные вопросы