2011-07-26 10 views
1

フェッチおよびページデータにストアドプロシージャを使用する必要があります。この特定のストアドプロシージャには、ページング情報を含むあらゆる種類のパラメータがあります。明らかに、ページングは​​サーバー側で行う必要があり、ユーザーが新しいページを選択するたびに1ページのデータを取得する必要があります。MVCContribグリッドを使用したサーバーサイドページング

MVCContribでこの作業をしようとしていますが、グリッドとそのページャはローカルページングとフィルタリングのみをサポートしているようです。利用可能なページの数は、コレクション内に既に存在するアイテムの数によって決定されるため、私のように見えます。

MVCContribをサーバー側のページングと連携させる方法はありますか?

答えて

1

自分でIPaginationインターフェイスを実装し、アクションメソッドにページパラメータを追加し、これをストアドプロシージャに渡して適切なアイテムのコレクションを取得する必要があります。次に、これと各自のストアドプロシージャがどのように動作するかについての知識から、それぞれのIPaginationプロパティを設定します。

これより具体的な例が必要な場合は、ストアドプロシージャのサンプル(またはその縮小版)が役立ちます。

"利用可能なページの数は、すでに のコレクション内のアイテムの数によって決まるため、私のように見えます。"

おそらく、LINQのフレーバーを使用しているサンプルがあります。これは必ずしもコレクション全体がメモリ内にあることを意味するものではありません。また、それらがメモリにあっても、私はこのサーバーサイドページングと呼んでいます。私にとっては、Webアプリケーションのクライアントサイドページングは​​JavaScriptを意味します。彼らは「AsPagination()」の拡張子を使うhttp://weblogs.asp.net/rajbk/archive/2010/05/08/asp-net-mvc-paging-sorting-filtering-using-the-mvccontrib-grid-and-pager.aspx

PS:それの音によって、あなたがそれのEntity Frameworkのビットを無視する必要がありますけれども、これは、あなたが始めるのに役立つことがありストアドプロシージャを呼び出して、IPaginationの実装を実装する必要があります。

3

MVCContribにCustomPaginationというクラスがあります。コンストラクタは次の引数をとります。

(Enumerable<T> dataSource, int pageNumber, int pageSize, int totalItems) 

次に、グリッドとページャに渡します。

関連する問題