DataGrid в UserControl - PullRequest
       18

DataGrid в UserControl

0 голосов
/ 05 мая 2010

У меня есть DataGrid в USerControl. Почему-то пейджинг не работает, пейджинг имеет правильное количество страниц, но нажатие на цифры не работает ... оно остается на странице 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 голосов
/ 05 мая 2010

Связана ли сетка данных пользовательских элементов управления на странице или в самом пользовательском элементе управления? Я думаю, что вы связываете их на странице, и вы сортируете их на странице. Поэтому вам нужно вызвать событие PageIndexChanged из UserControl и обработать его на странице.

Этот пример с 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

Теперь вы можете перехватить GridPageChanged из пользовательского элемента управления на своей странице и выполнить сортировку.

0 голосов
/ 16 июля 2013

Используйте вот так:

 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);
0 голосов
/ 05 мая 2010

Вы обрабатывали событие PageIndexChanged? Смотрите здесь для более подробной информации.

...