[英]How can I disable/hide edit button in gridview control of ASP.net
我有一個gridview控件,其中有兩個命令按鈕(linkButton),一個是“select”,另一個是“edit”,現在我有一個名為department的會話變量,它包含“WRITING”,“EDITING”等值,“管理員”等...現在問題是當部門是“寫作”時我想要編輯按鈕消失但是當它是“編輯”或“管理員”時我想要編輯按鈕出現。
我正在搜索一些論壇來解決這個問題並找到了這個
row.Cells[0].Controls.Clear();
這段代碼的問題在於它隱藏了整個命令列,包括“選擇”和“編輯”按鈕,而我只想控制“編輯”按鈕,選擇應該對所有部門保持可見。
如果我喜歡(在行數據綁定事件上)
e.row.Cells[0].Controls[1].visible = false OR
e.row.Cells[0].Controls[0].visible = false
指定的參數超出了有效值的范圍。
我該怎么做呢?
謝謝。
您可以通過以下方式使用Visible屬性。
if (Session(mode) == "WRITING") { (e.Row.FindControl("btnEdit")).Visible = false; }
首先 - 您的代碼不起作用,因為索引0處的gridViewCell只包含一個控件。 每個CommandButton都有一個單元格! 此外,我不太清楚為什么要使用RowDataBound事件。 在使用Session-Var時,綁定行時可能不會更改。
我在pageLoad eventHandler中嘗試了以下代碼 - 這對我來說很有用:
/// just replace CAPITAL letters with your names and
/// (Session["department"] == "WRITING") with your boolean expression
gvYOURGV.Columns[INDEXOFSELECTCOLUMN].Visible = (Session["department"] == "WRITING");
如果您希望在修改命令列的外觀時(需要具有?)更靈活 - 您甚至可以考慮將命令列更改為模板化列。 這樣做你可能有這個代碼:
<asp:GridView ID="gvYOURGV" runat="server">
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1"
visible='<%# Session["department"] != "WRITING" %>'
runat="server" CausesValidation="False"
CommandName="Select" Text="Auswählen"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
心連心
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.