DataPager と ObjectDataSource を使用して、ASP.NET で ListView のページングを実装しました。何年もの間、非常にうまく機能していましたが、問題が発生しました。
現在、PageSize を 15 に設定し、ButtonCount = 5 に設定しています。100 万行の場合、66,000 ページを超えています。問題は、DataPager コントロールの幅が特定の数値に制限されており、最初のブロック (1、2、3...) では問題ないが、最後のブロック (66000、660001、66002、..) に移動すると、.. .) ページング コントロールがコンテナーからオーバーフローしています。
StartRowIndex と DataPager コントロールの PageSize に基づいてページ番号を計算し、次を使用して ButtonCount 値を再設定するソリューションにたどり着きました。
(DataPager.Fields[<NumericPagerFieldIndex>] as NumericPagerField).ButtonCount = x
次に、奇妙なことが起こります: 最後のページ (66667) に移動して 66666 をクリックすると、ページ番号が 66666 に変更されると誰もが考えますが、そうではなく、66666 ではなく 66664 が選択されます。
理由はわかりませんが、Google が周りにいて、DataPager のコードも読んでいますが、まだ何も見つかりませんでした。
どんな助けでも大歓迎です!