我在 UserControl 中有一个 DataGrid。不知怎的,分页不起作用,分页有正确的页面数量,但点击数字不起作用......它停留在第 1 页。这是我的网格:
<asp:DataGrid ID="DG_Grid" runat="server" AllowPaging="True" PageSize="10" EnableViewState="True"
AllowSorting="False" DataKeyField="DUEDATE" OnItemDataBound="DG_Grid_ItemDataBound" OnItemCommand="DG_Grid_ItemCommand">
有人有想法吗?
您处理过 PageIndexChanged 事件吗?请参阅此处了解更多详情。
用户控件的数据网格是绑定在页面中还是用户控件本身中?我认为您将它们绑定在页面中,然后在页面中对它们进行排序。因此,您必须从 UserControl 引发 PageIndexChanged 事件并在页面中处理它。
此示例适用于 GridView,但对于 DataGrid 来说是相同的。
在用户控件中定义您在页面中处理的事件:
Public Event GridPageChanged(ByVal grid As GridView)
Private Sub GridView1_PageIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.PageIndexChanged
RaiseEvent GridPageChanged(Me.GridView1)
End Sub
您现在可以在页面中捕获用户控件的 GridPageChanged 并进行排序。
像这样使用:
private void FillGrid(int aPageNumber)
{
//Insert you code here
DG_Grid.DataSource = _ds.Tables[0].DefaultView;
DG_Grid.PageIndex = aPageNumber;
DG_Grid.DataBind();
}
在此调用网格事件之后
protected void DG_Grid_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
FillGrid(e.NewPageIndex);
}
加载时调用:
FillGrid(0);