2012-04-14 10 views
1

Ich habe eine Seite mit einem Gridview. In der Gridview sind "Bearbeitung aktivieren" und "Löschen aktivieren" standardmäßig aktiviert. Ich möchte in dem code-behind page_load -Ereignis "beide" deaktivieren können.Anzeige des Teils der Befehlsspalte basierend auf der Rolle

Ich fand this SO question, aber das verbirgt die ganze Befehlsspalte. Ich möchte nur den Hyperlink "Bearbeiten" oder "Löschen" ausblenden, basierend auf der Rolle eines Benutzers. Wie würde ich das machen?

Antwort

2

Fügen Sie diese auf Ihre Gridview: OnDataBound = „GridView1_DataBound“ Trennen Sie den Befehl Spalten in der Gridview

<asp:CommandField ShowDeleteButton="True" /> 
<asp:CommandField ShowEditButton="True" /> 

protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
     if (User.IsInRole("Administrator")) 
     { 
      GridView1.Columns[0].Visible = true; 
      GridView1.Columns[1].Visible = true; 
     } 
     else { 
      GridView1.Columns[0].Visible = false; 
     } 
} 

Ändern der Spaltenindex basierend auf Ihren Anforderungen, die erste Spalte 0

+0

Danke, didn Ich weiß, dass ich die Befehlsfelder so aufteilen könnte. – Mekswoll

+0

Die Benutzerprüfung kann in eine Dienstprogrammklasse verschoben werden, um harte Codierrollen auf jeder Seite zu vermeiden. –

Verwandte Themen