0

我在 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">

任何人的想法?

4

3 回答 3

0

Usercontrols 的 Datagrid 是绑定在 Page 中还是在 Usercontrol 本身中?我认为您将它们绑定在页面中,然后在页面中对它们进行排序。因此,您必须从 UserControl 引发 PageIndexChanged 事件并在页面中处理它。

这个例子是 GridView 但对于 DataGrid 它是一样的。

在 UserControl 中定义您在 Page 中处理的事件:

    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

您现在可以在 Page 中捕获用户控件的 GridPageChanged 并进行排序。

于 2010-05-05T12:50:23.403 回答
0

你处理过 PageIndexChanged 事件吗?有关更多详细信息,请参见此处

于 2010-05-05T12:27:17.423 回答
0

像这样使用:

 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);
于 2013-07-16T09:55:26.517 回答