ASP.NET - ListView и DataPager не работают - PullRequest
1 голос
/ 14 декабря 2011

Я использовал DataPager для перелистывания данных ListView.Когда ListView bound, DataPager показывают много страниц ниже, все кажется нормальным, но когда я нажимаю на другую страницу, после обратной передачи, ListView пусто с EmptyDataTemplate и, конечно, без страниц.

Я погуглил и попробовал один и оба обходных пути ниже, но они не помогли

    protected void DatapPager_OnPreRender(object sender, EventArgs e)
    {
        try
        {
            listView.DataSource = ((DataSet)ViewState[VIEWSTATE_DATASET]).Tables[0];
            listView.DataBind();
        }
        catch (System.Exception ex)
        {               
        }            
        base.OnPreRender(e);
    }

    protected void listView_OnPagePropertiesChanged(object sender, EventArgs e)
    {
        try
        {
            listView.DataSource = ((DataSet)ViewState[VIEWSTATE_DATASET]).Tables[0];
            listView.DataBind();
        }
        catch (System.Exception ex)
        {               
        }            
    }

В моем случае данные ListView связаны в событии щелчка, а не в PageLoad.

Может кто-нибудь мне поможет?Большое вам спасибо!

Ответы [ 2 ]

1 голос
/ 12 ноября 2012

Это просто, просто получите «ID» в «QUERY-STRING» из базы данных, теперь установите его для свойства элемента управления пейджером как [QueryStringField="ID"] например:

<asp:DataPager ID="DataPagerProducts" runat="server" QueryStringField="ID" PageSize="3">
                            <Fields>
                                <asp:NextPreviousPagerField ShowFirstPageButton="True" ShowNextPageButton="False" />
                                <asp:NumericPagerField />
                                <asp:NextPreviousPagerField ShowLastPageButton="True" ShowPreviousPageButton="False" />
                            </Fields>
                        </asp:DataPager>

Примечание: если не просыпается, то установить также [PagedControlID="ListView_Name"].

0 голосов
/ 14 декабря 2011

Вы не показываете, как устанавливается ViewState[ViewState[VIEWSTATE_DATASET].Я предполагаю, что это сбрасывается до null при обратной передаче, и вы глотаете Exception, который, вероятно, поднят в этой строке, пытаясь привести к нулевому значению:

 listView.DataSource = ((DataSet)ViewState[VIEWSTATE_DATASET]).Tables[0];
...