1

DataPager を使用してListViewデータをページングしました。ListViewバインドすると、下DataPagerに多くのページが表示されますが、すべて問題ないように見えますが、別のページをクリックすると、ポストバック後、もちろんページがなくListViewても空です。EmptyDataTemplate

私はググって、以下の回避策の1つと両方を試しましたが、役に立ちませんでした

    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)
        {               
        }            
    }

私の場合、ListViewPageLoad ではなく、クリック イベントにバインドされたデータです。

誰でも私を助けることができますか?どうもありがとう!

4

2 に答える 2

1

シンプルで、データベースから「QUERY-STRING」の「ID」を取得し、次の[QueryStringField="ID"]ように Pager Control プロパティに設定します。

<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"]ください。

于 2012-11-12T05:41:09.313 に答える
0

どのように設定されるかは示していませんViewState[ViewState[VIEWSTATE_DATASET]。私はこれがnullポストバックにリセットされていると推測しExceptionています.null値をキャストしようとしているこの行でおそらく発生したものを飲み込んでいます:

 listView.DataSource = ((DataSet)ViewState[VIEWSTATE_DATASET]).Tables[0];
于 2011-12-14T03:12:17.700 に答える