Пейджинг GridView всегда показывает первую страницу - PullRequest
0 голосов
/ 15 июня 2009

У меня странный опыт работы с пейджингом в GridView. Я пытаюсь лениво загрузить данные в мое представление, используя панель обновления с таймером и updateprogress, прикрепленным к нему. Поэтому в основном я пытаюсь сделать так, чтобы при загрузке страницы с сеткой я запускал таймер, включив его. В событии timer_tick я выбираю данные и загружаю их в переменную. Затем вызывая databind для gridView, заставляя его связывать данные. Здесь я использую LinqDataSource для этого. Наконец, я обновляю пользовательский интерфейс с помощью метода Update на панели обновления.

Все это прекрасно работает с сортировкой и фильтрацией в виде сетки, но когда я делаю постраничную страничку, страницы сетки, как и должно быть, но шаблон подкачки всегда остается на первой странице (показывает 1 как активную). Есть идеи, люди? Вот часть моего кода:

    <asp:LinqDataSource runat="server" ID="OrdersDataSource" 
        OnSelecting="OrdersDataSource_Selecting" AutoPage="false" />

    <asp:GridView runat="server" ID="OrdersGridView" AutoGenerateColumns="false" 
        DataSourceID="OrdersDataSource"
        AllowPaging="true" AllowSorting="true" PageSize="3">

    <Columns>

...

<asp:Timer runat="server" ID="LazyLoadUpdatePanel" 
    Enabled="false"
    Interval="1" OnTick="LazyLoadUpdatePanel_Tick" />

...

protected void LazyLoadUpdatePanel_Tick(object sender, EventArgs e)
{
    if (datasource == null)
    {
        System.Threading.Thread.Sleep(2000);
        datasource = customer.Orders;
        OrdersGridView.DataBind();
        OrdersUpdatePanel.Update();

    }
    LazyLoadUpdatePanel.Enabled = false;
}

Кстати, я пробовал с автостраничкой на источнике данных и без него. Это не сработало. Как я уже сказал, пейджинг, кажется, работает, пользовательский интерфейс просто не показывает, что я должен.

1 Ответ

0 голосов
/ 15 июня 2009

EnableViewState = "false" на GridView заставил его работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...