Pergunta

Eu tenho um ASPxGridView que eu gostaria de permitir que alguns usuários ter lido e os demais usuários acesso de gravação. Idealmente, isso seria baseada em grupos do Active Directory.
Como posso fazer isso?

Foi útil?

Solução 2

Já acabou criando um manipulador de eventos para o evento DataBound e incapacitante da Coluna de comando da seguinte forma:

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

Outras dicas

Se você estiver usando a edição no local de linhas, então seria uma questão de esconder os controles que permitem ao usuário editar a grade.

Você pode fazer isso por enganchando em evento RowDataBound do GridView com um manipulador de eventos, e verificar a função do usuário. Se eles não o cheque, ocultar os controles de edição.

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

Se você quiser ativar o EditButton condicionalmente apenas para determinadas linhas, há um exemplo CQ66919 em cima da DevExpress.com.

Além disso, eles se referem a exemplo E366 para versões mais recentes do ASPxGridView.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top