2012-01-02 1 views
0
var skip = selectedPage*pageSize; 
      var take = Math.Min(result.DataSourceCount - skip, pageSize); 

      List<SENTINEL_OPERATION> results = sentinelOperationManager.SearchSentinelOperations(sid).Skip(skip).Take(take).ToList(); 

私の最後のページは常に空になります。私はPageDataSourceを使用してページサイズを取得し、jquery ajax getを使用してクリックしたページを送信します。私は何か見落としてますか?ありがとうスキップとテイクの手法を使用したページネーション

+2

selectedPageは1または0から開始しますか? – alun

+0

'take '量の場合、' pageSize'を使うことができます - 指定されたリストが小さければ問題ありません。 –

+0

@alun 1で始まるので、-1を追加しました。今すぐ動作しているようです。 – Johan

答えて

6

私は、selectedPageがあなたのコードで1から始まり、これがエラーを引き起こしていると確信しています。最初のページにはskip == pageSizeがあり、最後のページでは「範囲外」になりますが、実際の最初のページはスキップしています。 1から

selectedPageであれば開始し、その後にこの数式を変更:

var skip = (selectedPage - 1) * pageSize; 

また - 手動take値を計算する必要はありません。あなたはpageSizeを渡すことができ、それは常に動作します。データソースに十分な要素が含まれていない場合、間違ったことは起こりません。利用可能な要素だけが返されます。

+0

ちょうど最初の部分に気づいた。これは正しいです。病気も同様に調整する、ありがとう! – Johan

関連する問題