我正在从数据库中搜索一些数据到数据网格中。当我在其上应用分页时,在单击下一个分页链接时,datagrid将消失而不显示任何内容。我在回页时也在pageload中使用了datagrid.databind(),或者我甚至将名为datagridname_onpageindexchanged()
的回发事件方法设为:
protected void DataGridSearchResults_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
DataGridSearchResults.currentpageindex=e.newpageindex;
DataGridSearchResults.databind();
}
答案 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.
}