【问题标题】:Pagination of GridView which is inside a DataListDataList 中的 GridView 的分页
【发布时间】:2013-07-15 17:50:06
【问题描述】:


我的要求是显示数据库中的所有国家,对于每个国家,我必须显示其各自的状态。
因此,为了显示我使用 DataList 的所有国家/地区。 `DataLIst 的 OnItemDataBound 函数我已经绑定了 gridview 以显示其各自的状态。
现在,我想为数据列表中的内部网格视图提供分页。
我不知道如何处理数据列表中的 gridview 分页。

我已将网格视图绑定为,

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

请你们中的任何人为我提供解决方案。提前致谢。

【问题讨论】:

  • 你可以使用 NamingContainer 属性来做到这一点
  • 你能把你的网格绑定代码放在fiddle/这里,这样就容易回答了
  • @Gangadhar 我已经给出了我的网格绑定代码。一旦检查出来..

标签: c# asp.net


【解决方案1】:

如果您将网格视图与数据列表项中的某些输入参数绑定,那么您需要有一个标签将其保存在数据列表中。

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 绑定。

【讨论】:

    【解决方案2】:

    你可以试试这个 其中 gv 是 gridview 而namingcontainer 是 datalist 是父级 datasettable 是要绑定的数据 clsCommon.GridViewPopulate 用于 biinging 网格 我希望这会有所帮助 写入pageindexchangeing属性

     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;
            }
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多