Frage

Ich habe eine ASPxGridView, die ich möchte, zu ermöglichen, dass einige Benutzer gelesen zu haben und andere Benutzer Schreibzugriff auf.Im Idealfall wäre dies basiert auf Active Directory-Gruppen.
Wie kann ich dies tun?

War es hilfreich?

Lösung 2

Ich habe einen Event-Handler zu schaffen für das Databound-Ereignis endete und das Deaktivieren der Befehlsspalte wie folgt:

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

Andere Tipps

Wenn Sie die direkte Bearbeitung von Zeilen verwenden, dann wäre es eine Frage der sein, die Kontrollen versteckt, die es einem Benutzer erlauben würde, um das Raster zu bearbeiten.

Sie können dies tun, indem Sie in die RowDataBound Ereignis mit einem Event-Handler des Gridview Einhaken, und die Rolle des Benutzers zu überprüfen. Wenn sie die Prüfung nicht, blenden Sie die Steuerelemente für die Bearbeitung.

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

Wenn Sie möchten, aktivieren Sie die EditButton bedingt nur für bestimmte Zeilen, es ist ein Beispiel CQ66919 über an DevExpress.com.

Darüber hinaus beziehen Sie sich zum Beispiel E366 für neuere Versionen der ASPxGridView.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top