1

ASP.NET メンバーシップで PagedList.mvc ヘルパーを使用して、アプリケーション ユーザーの詳細をテーブルに表示しています。ページャーは Membership.GetAllUsers() メソッドを使用して正しく動作しますが、この記事で提案されているように、テーブル全体ではなく、1 ページのデータを返すオーバーロードを利用できるようにしたいと考えています。

        int pageSize = int.Parse(ConfigurationManager.AppSettings["gridPageSize"]);
        int totalRecords;
        IEnumerable<MembershipUser> users = Membership.GetAllUsers((page ?? 0), pageSize, out totalRecords).Cast<MembershipUser>();
        return View(users.ToPagedList((page ?? 1), pageSize));

問題のオーバーロードを使用する上記のコードは、残念ながらデータの最初のページのみを表示し、2 ページ目以降のページへのリンクを提供しません。これは、PagedList ヘルパーが、テーブルの実際のサイズ (GetAllUsers(int, out int) の出力パラメーターから取得可能) ではなく、渡されたコレクションのサイズに従って構成されているためと思われます。

この明らかな制限を回避する方法を知っている人はいますか?

4

1 に答える 1

1

PagedList README の例 2 に従って、StaticPagedList を使用します。

https://github.com/troygoode/pagedlist#example-2-manual-paging

var users = Membership.GetAllUsers(pageIndex, pageSize, out totalUserCount);
var usersAsIPagedList = new StaticPagedList<MembershipUser>(users, pageIndex + 1, pageSize, totalUserCount);
于 2012-07-09T13:05:12.163 に答える