4

標準の ListView (データ ソースとして DataTable を使用) を備えた標準の ASP.Net DataPager があります。

デザイン コードで PageSize="24" を設定すると、次のようになります。

<asp:DataPager runat="server" ID="DataPager1" PagedControlID="ListView1" QueryStringField="page" PageSize="24" >

ページングは​​宣伝どおりに機能します。

ただし、コードでそれを変更すると、Page_Load で次のようになります。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    DataPager1.PageSize = 48
End Sub

ページングは​​完全に機能しなくなりますが、最初にロードされたデータ セットは実際には 48 項目です。

これに影響を与えるようなコードは何も見当たりません。

よろしく

ムー

4

2 に答える 2

9
Protected Sub DataPager1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataPager1.Init
    DataPager1.PageSize = 48
End Sub

データページャーの init イベントでページ サイズ プロパティを設定することで、これを機能させることができました。

于 2010-07-13T01:32:20.753 に答える
1

私が通常見つけるこの種のエラーは、データバインディングの問題です...必要がないときにバインディングするか、適切なときに再バインディングしないかのいずれかです。コードの小さなスニペットからはわかりにくいです。

私は DataPager オブジェクトに慣れていませんが、PageSize を設定するときにデータを再バインドする必要があると思います。その場合、ページが読み込まれるたびに再バインドされ、イベントが失われます。これを試しましたか?

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack
        DataPager1.PageSize = 48
    End If
End Sub
于 2009-09-26T06:09:06.363 に答える