在GridView中,我试图使用公共布尔属性显示一列或另一列:
<Columns>
...
<asp:BoundField Visible="<%= !ShowPurchaseDate %>" DataField="Published" HeaderText="Publicerad" SortExpression="PriceRange" DataFormatString="{0:yyyy.MM.dd}" HtmlEncode="false" />
<asp:BoundField Visible="<%= ShowPurchaseDate %>" DataField="OrderDate" HeaderText="Köpt" SortExpression="OrderDate" DataFormatString="{0:yyyy.MM.dd}" HtmlEncode="false" />
...
</Columns>
但我收到一条错误消息,指出无法从包含&lt;%!ShowPurchaseDate%&gt;的字符串创建System.Boolean。物业Visisble。
我怎么能做到这一点?
更新:
&lt;%#!ShowPurchaseDate%&gt;由于没有数据绑定,因此无法正常工作。
使用受保护的funktion也不起作用(与属性相同的错误消息)。
答案 0 :(得分:2)
我通过以下方式解决了这个问题:
gridMain.Columns[ShowPurchaseDate ? 3 : 4].Visible = false;
这是最好的解决方案吗?
答案 1 :(得分:0)
在后面的代码中提供一个受保护的方法,它将boolean属性作为字符串返回。
答案 2 :(得分:0)
您的代码应为&lt;%#!ShowPurchaseDate%&gt;
答案 3 :(得分:0)
您可以尝试调用方法而不是像shouldshowcolumn()那样绑定。