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确实如此。