Pregunta

Tengo un ASPxGridView al que me gustaría permitir que algunos usuarios lean y otros usuarios tengan acceso de escritura. Idealmente, esto estaría basado en grupos de Active Directory.
¿Cómo puedo hacer esto?

¿Fue útil?

Solución 2

Terminé creando un controlador de eventos para el evento DataBound y deshabilitando la columna de comandos de la siguiente manera:

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

Otros consejos

Si está utilizando la edición de filas en el lugar, sería cuestión de ocultar los controles que le permitirían a un usuario editar la cuadrícula.

Puede hacer esto conectándose al evento RowDataBound de GridView con un controlador de eventos y verificando la función del usuario. Si no pasan la verificación, oculte los controles de edición.

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

Si desea habilitar el EditButton condicionalmente solo para ciertas filas, hay un ejemplo CQ66919 en DevExpress.com.

Además, se refieren al ejemplo E366 para obtener versiones más recientes de ASPxGridView .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top