Разрешить редактирование ASPxGridView только определенным пользователям
-
05-07-2019 - |
Вопрос
У меня есть ASPxGridView, который я хотел бы предоставить некоторым пользователям для чтения, а другим пользователям - для записи.В идеале это должно быть основано на группах Active Directory.
Как я могу это сделать?
Решение 2
В итоге я создал обработчик события для события DataBound и отключил столбец команд следующим образом:
protected void ASPxGridView1_DataBound(object sender, EventArgs e)
{
if (!User.IsInRole(ConfigurationSettings.AppSettings["EditActiveDirectoryGroup"]))
{
foreach (GridViewColumn c in ASPxGridView1.Columns)
{
if (c.GetType() == typeof(GridViewCommandColumn))
{
c.Visible = false;
}
}
}
}
Другие советы
Если вы используете редактирование строк на месте, тогда нужно будет скрыть элементы управления, которые позволят пользователю редактировать сетку.
Это можно сделать, подключившись к событию RowDataBound GridView с помощью обработчика событий и проверив роль пользователя. Если проверка не пройдена, скрыть элементы редактирования.
void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
if (!Roles.IsUserInRole("Admin"))
{
// Hide the edit controls.
// This would be your "Edit" button or something.
e.Row.Cells[1].Controls[0].Visible = false;
}
}
}
Не связан с StackOverflow