Asp.net 将TemplateField的可见性绑定到BoundField的内容
TemplateField的“Visible”标记中的(伪代码)表达式是我想要实现的,有什么想法吗? 我真的很想以声明的方式去做。无OnRowCreated事件处理,单元格[x]Asp.net 将TemplateField的可见性绑定到BoundField的内容,asp.net,data-binding,gridview,webforms,Asp.net,Data Binding,Gridview,Webforms,TemplateField的“Visible”标记中的(伪代码)表达式是我想要实现的,有什么想法吗? 我真的很想以声明的方式去做。无OnRowCreated事件处理,单元格[x] <asp:GridView ID="GridViewTest" runat="server" AutoGenerateColumns="false"> <Columns> <asp:BoundF
<asp:GridView ID="GridViewTest" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="MyProperty" HeaderText="My Property" />
<asp:TemplateField Visible="<%# MyProperty == 'VisibleString' %>">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" AlternateText="" ImageUrl="" OnClick="ImageButton1_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
无法在TemplateField列本身上执行此操作,因为它不支持数据绑定。我必须在ImageButton内完成。现在它可以完美地工作:
<asp:ImageButton Visible='<%# Eval("MyProperty") == "VisibleString" %>' [...] />
不幸的是,这同样适用于BoundFields。不幸的是,这只会隐藏内容(在您的案例中是图像),而不会隐藏列,并且会隐藏列标题。它将显示空行。