Domanda

Ho un ASPxGridView che vorrei consentire ad alcuni utenti di leggere e ad altri utenti che hanno accesso in scrittura. Idealmente, ciò si baserebbe su gruppi di Active Directory.
Come posso farlo?

È stato utile?

Soluzione 2

Ho finito per creare un gestore eventi per l'evento DataBound e disabilitare la colonna comandi come segue:

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

Altri suggerimenti

Se si utilizza la modifica sul posto delle righe, si tratterebbe di nascondere i controlli che consentirebbero a un utente di modificare la griglia.

Puoi farlo collegandoti all'evento RowDataBound di GridView con un gestore eventi e controllando il ruolo dell'utente. Se falliscono il controllo, nascondi i controlli di modifica.

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 si desidera abilitare EditButton solo per determinate righe, esiste un esempio CQ66919 su DevExpress.com.

Inoltre fanno riferimento all'esempio E366 per le versioni più recenti del ASPxGridView .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top