UserControl中的DataGrid

时间:2010-05-05 12:24:04

标签: c# asp.net user-controls paging page-index-changed

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

想点什么?

3 个答案:

答案 0 :(得分:0)

您是否处理过PageIndexChanged事件?有关详细信息,请参阅here

答案 1 :(得分:0)

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

这个例子与GridView有关,但对于DataGrid则相同。

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

    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

您现在可以在页面中捕获usercontrol的GridPageChanged并进行排序。

答案 2 :(得分: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);