Nur Bestimmten Benutzern Erlauben, zu Bearbeiten ASPxGridView
-
05-07-2019 - |
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?
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;
}
}
}