如何在.NET中使用Eval将字符串放到CssClass中

时间:2012-01-28 17:16:24

标签: c# .net eval

当我在aspx页面中运行下面的代码时,它的工作没有任何问题。

<%# (DataBinder.Eval(Container.DataItem,"ExtendedProperties['ShowDetail']")) == null ? "show showdetail" : ( (bool)(DataBinder.Eval(Container.DataItem,"ExtendedProperties['ShowDetail']")) == true ?  "showdetail hide" : "show showdetail ") %>

但是当我把它放在按钮的属性上时,它表示服务器标签无效。有什么问题

<asp:Button ID="btnShowDetail" OnClick="BindRecommendation" Text="" runat="server"
CssClass='<%# (DataBinder.Eval(Container.DataItem,"ExtendedProperties['ShowDetail']")) == null ? "show showdetail" : ( (bool)(DataBinder.Eval(Container.DataItem,"ExtendedProperties['ShowDetail']")) == true ?  "showdetail hide" : "show showdetail ") %>' BorderStyle="None" />

1 个答案:

答案 0 :(得分:1)

您的字符串会混合"' - 内部'最终会分隔CssClass属性值的末尾。

您只需要使用一个类型。

复杂的是,要使用字符串评估索引属性,必须使用C#字符串,因此'不是有效的分隔符,而必须使用"

您可以通过加倍来扩展HTML源代码中的"

ExtendedProperties[""ShowDetail""]