2013-06-11 3 views
0

Я использую поставщик .NET-членства по умолчанию и заполняю Gridview ролями, используя Roles.GetAllRoles(). У меня есть командное поле для удаления ролей и связанного поля для самой роли. Что мне нужно сделать, так это добавить число пользователей на роль, столбец роли будет выглядеть следующим образом:Получить количество пользователей для каждой роли

Администраторы (4)
контролеров (12)

Чтобы предотвратить удаление роли, которая имеет пользователей, я имел в виду использовать событие RowCreated для извлечения базы данных и добавить значение к роли. Есть ли лучший способ сделать это?

Редактировать: Решение Чтобы добиться того, что мне нужно, мне пришлось использовать событие RowDataBound.

protected void RoleList_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      string roleName = ((Label)e.Row.FindControl("RoleNameLabel")).Text; 

      if (roleName.Trim().Length > 0 && Roles.RoleExists(roleName)) 
      { 
       Int32 roleCount = Roles.GetUsersInRole(roleName).Count(); 
       ((Label)e.Row.FindControl("RoleNameLabel")).Text += "(" + roleCount + ")"; 
      } 
     } 

    } 

ответ

0

Вы можете использовать Roles.GetUsersInRole. Например:

If Roles.GetUsersInRole(strRole).Count > 0 Then 
    'do NOT delete this role 
End If 
+0

Спасибо, теццо, что делает мой день :) – Mario

Смежные вопросы