Asp.net
如何在 GridView 中隱藏 TemplateField 列
如何在 GridView 中隱藏 TemplateField 列?
我嘗試了以下方法:
<asp:TemplateField ShowHeader="False" Visible='<%# MyBoolProperty %>' > <ItemTemplate> <asp:LinkButton ID="attachmentButton" runat="server" ... /> </ItemTemplate>但它不起作用並給出以下錯誤:
只有具有 DataBinding 事件的對象才支持數據綁定表達式。System.Web.UI.WebControls.TemplateField 沒有 DataBinding 事件。
我也嘗試以程式方式隱藏它,但似乎無法通過名稱獲取列,因為
TemplateField列沒有名稱。
protected void OnRowCreated(object sender, GridViewRowEventArgs e) { e.Row.Cells[columnIndex].Visible = false; }如果您不喜歡硬編碼索引,我可以建議的唯一解決方法是為提供****a然後使用 that 查找列
HeaderText``GridViewColumn``HeaderText。protected void UsersGrid_RowCreated(object sender, GridViewRowEventArgs e) { ((DataControlField)UsersGrid.Columns .Cast<DataControlField>() .Where(fld => fld.HeaderText == "Email") .SingleOrDefault()).Visible = false; }