Пейджинг с отфильтрованными пользователями в Asp.Net MVC? - PullRequest
0 голосов
/ 27 января 2012

Когда я делаю пейджинг всех зарегистрированных пользователей в Asp.Net MVC, я использую:

"Membership.GetAllUsers (page ?? 0, pageSize, out totalUsers)"
метод и работает отлично. Но я также хочу фильтровать пользователей по ролям. Поэтому я использую приведенный ниже код для фильтрации пользователей по ролям. И это отлично работает.

                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);
                        }
                    }
                }

И мой вопрос, как возможен пейджинг с FilterUsers? Может ли кто-нибудь помочь мне об этом?

1 Ответ

2 голосов
/ 27 января 2012

Вы можете использовать методы .Skip и .Take:

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

Может быть не очень эффективно, потому что мы выполняем пейджинг и фильтрацию на стороне клиента, но я боюсь, что API членства не позволяет вам выполнять пейджинг и фильтрацию одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...