用户控件中的数据网格

问题描述 投票:0回答:3

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

有人有想法吗?

c# asp.net pagination user-controls page-index-changed
3个回答
0
投票

您处理过 PageIndexChanged 事件吗?请参阅此处了解更多详情。


0
投票

用户控件的数据网格是绑定在页面中还是用户控件本身中?我认为您将它们绑定在页面中,然后在页面中对它们进行排序。因此,您必须从 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 并进行排序。


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);
© www.soinside.com 2019 - 2024. All rights reserved.