ASP.net:动态BoundFields

时间:2009-03-23 13:44:55

标签: c# asp.net

在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也不起作用(与属性相同的错误消息)。

4 个答案:

答案 0 :(得分:2)

我通过以下方式解决了这个问题:

gridMain.Columns[ShowPurchaseDate ? 3 : 4].Visible = false;

这是最好的解决方案吗?

答案 1 :(得分:0)

在后面的代码中提供一个受保护的方法,它将boolean属性作为字符串返回。

答案 2 :(得分:0)

您的代码应为&lt;%#!ShowPurchaseDate%&gt;

答案 3 :(得分:0)

您可以尝试调用方法而不是像shouldshowcolumn()那样绑定。