2012-01-27 10 views
0

私が使用してAsp.Net MVCのすべての登録ユーザーをページング:Asp.Net MVCでフィルタリングされたユーザーとのページング?

"Membership.GetAllUsers(totalUsersアウトページ?? 0、pageSizeを、)"
方法と、それが正常に動作します。しかし、私はロールでユーザーをフィルタリングしたい。だから私はロールでユーザーをフィルタリングするために、以下のコードを使用します。それはうまく動作します。

   MembershipUserCollection allUsers = Membership.GetAllUsers(); 
       MembershipUserCollection filteredUsers = new MembershipUserCollection(); 
       string[] usersInRole = Roles.GetUsersInRole(roleName); 
       foreach (MembershipUser user in allUsers) 
       { 
        foreach (string userInRole in usersInRole) 
        { 
         if (userInRole == user.UserName) 
         { 
          filteredUsers.Add(user); 
         } 
        } 
       } 

そして、私の質問ですが、どのように可能なページングfilteredUsersと?誰もそれについて私を助けることができますか?

答えて

2

あなたは.Skip.Takeメソッドを使用することができます。私たちは、クライアント側でページングやフィルタリングを行っているので、

page = page ?? 0; 
var filteredAndPaginatedUsers = filteredUsers 
    .Cast<MembershipUser>() 
    .Skip((page - 1) * pageSize) 
    .Take(pageSize) 
    .ToArray(); 

は非常に効率的ではないかもしれませんが、私はメンバーシップAPIは許可しないことを恐れていますあなたはページングとフィルタリングを同時に行うことができます。

関連する問題