分页不在Datagrid中工作?

时间:2014-12-17 07:12:34

标签: c# asp.net datagrid

我正在从数据库中搜索一些数据到数据网格中。当我在其上应用分页时,在单击下一个分页链接时,datagrid将消失而不显示任何内容。我在回页时也在pageload中使用了datagrid.databind(),或者我甚至将名为datagridname_onpageindexchanged()的回发事件方法设为:

protected void DataGridSearchResults_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
   DataGridSearchResults.currentpageindex=e.newpageindex;
   DataGridSearchResults.databind();
}

3 个答案:

答案 0 :(得分:0)

您需要在此处为​​数据网格设置DataSource。

protected void DataGridSearchResults_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
   DataGridSearchResults.CurrentPageIndex = e.NewPageIndex;
   DataGridSearchResults.DataSource = YourDataSource;
   DataGridSearchResults.DataBind();
}

此外,如果您在Page_Load中绑定网格,请确保您没有在if(!IsPostBack){}之外绑定网格。否则,您将在每次回发时丢失数据。

protected void Page_Load(object sender, EventArgs e)
{
    if(!IsPostBack)
    {
       //Bind Your Grid Here
    }
}

答案 1 :(得分:0)

如果(!IsPostBack)    {

 // Bind your dataGrid

}

请参阅此链接http://msdn.microsoft.com/enus/library/system.web.ui.webcontrols.datagrid.allowcustompaging.aspx

答案 2 :(得分:0)

您的aspx应该包含分页: -

<asp:DataGrid ID="DataGridSearchResults" runat="server" AllowPaging="true" PageSize="10"
OnPageIndexChanged="DataGridSearchResults_PageIndexChanged">

如果网格在页面加载时有数据,它应该像这样绑定: -

protected void Page_Load(object sender, EventArgs e)
    {
            if (!Page.IsPostBack)
            {
                //Bind your grid here.
            }
    }

然后页面索引更改了功能: -

protected void DataGridSearchResults_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
          DataGridSearchResults.CurrentPageIndex = e.NewPageIndex;
          //Bind your Grid here again.

}