GridView的分页,它位于DataList中

时间:2013-07-15 07:25:49

标签: c# asp.net


我的要求是从数据库中显示所有国家/地区,并且每个国家/地区都必须显示其各自的状态。
因此,为了显示我使用DataList的所有国家/地区。 OnItemDataBound函数`DataLIst我已经绑定了gridview以显示其各自的状态。
现在,我想为在datalist中的内部gridview进行分页。
我不知道如何处理datailist中的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();
    }
}

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

2 个答案:

答案 0 :(得分:2)

如果您使用datalist项目中的某些输入参数绑定gridview,那么您需要有一个标签将其保存在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。

答案 1 :(得分:1)

你可以试试这个 其中gv是gridview,namingcontainer是datalist,它是parent datasettable是要绑定的数据 用于对齐网格的clsCommon.GridViewPopulate 我希望这是有帮助的 写入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;
        }

    }