2012-04-14 45 views
1

我有一個帶有gridview的頁面。 gridview默認選中「啓用編輯」和「啓用刪除」。我希望能夠在代碼隱藏page_load事件中「取消」其中的任何一個。根據角色顯示命令列的一部分

我發現this SO question但這隱藏了整個命令列。我只想隱藏基於用戶角色的「編輯」或「刪除」超鏈接。我會如何去做這件事?

回答

2

添加到您的GridView:在GridView ondatabound =「GridView1_DataBound」 分隔命令列

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

更改列索引根據您的要求,第一列是0

+0

謝謝,沒不知道我可以像這樣分割命令區。 – Mekswoll 2012-04-14 17:11:27

+0

可以將用戶檢查移到實用程序類,以避免在每個頁面上都有硬編碼角色。 – 2013-03-07 05:57:04