Asp.net asp:BoundField查看带有条件的值
我有一个数据视图,其中包含:Asp.net asp:BoundField查看带有条件的值,asp.net,boundfield,Asp.net,Boundfield,我有一个数据视图,其中包含: <asp:BoundField DataField="AccontoAutorizzato" HeaderText="Acconto Aut." SortExpression="AccontoAutorizzato" dataformatstring="{0:C}" /> 可以使用以下条件隐藏每个的值: Visible=<%# ((Int32)Eval("StatoID") < 2)
<asp:BoundField DataField="AccontoAutorizzato" HeaderText="Acconto Aut."
SortExpression="AccontoAutorizzato" dataformatstring="{0:C}" />
可以使用以下条件隐藏每个的值:
Visible=<%# ((Int32)Eval("StatoID") < 2) %>
可见=
?
谢谢以下是可能的
<asp:TemplateField HeaderText="Acconto Aut." >
<ItemTemplate>
<asp:Label ID="lbl" runat="server" Text='<%# Bind"AccontoAutorizzato") %>'
Visible='<%# ((int)(Eval("StatoID")) < 2) %>' />
</ItemTemplate>
</asp:TemplateField>
对我来说不起作用,因为即使绑定应该返回true或false,解释器实际上也无法将条件结果转换为布尔值
因此,我使用了一个显式的布尔值选择:
<asp:TemplateField HeaderText="Acconto Aut." >
<ItemTemplate>
<asp:Label ID="lbl" runat="server" Text='<%# Bind"AccontoAutorizzato") %>'
Visible='<%# ((int)(Eval("StatoID")) < 2) ? Convert.ToBoolean(0) : Convert.ToBoolean(1) %>' />
</ItemTemplate>
</asp:TemplateField>
我希望这能让其他人在将布尔错误应用于可见属性时更容易处理它。我很惊讶这能奏效。我在下面回答了另一个选择。虽然这个代码片段是受欢迎的,并且可能提供一些帮助,但它将是如何以及为什么解决这个问题的。记住,你是在将来回答读者的问题,而不仅仅是现在提问的人!请在回答中添加解释,并说明适用的限制和假设。Right@TobySpeight!解决方案是实际避免使用BoundField,因为它不支持可见性的绑定。然而,TemplateField确实如此。