当我在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" />
答案 0 :(得分:1)
您的字符串会混合"
和'
- 内部'
最终会分隔CssClass
属性值的末尾。
您只需要使用一个类型。
复杂的是,要使用字符串评估索引属性,必须使用C#字符串,因此'
不是有效的分隔符,而必须使用"
。
您可以通过加倍来扩展HTML源代码中的"
:
ExtendedProperties[""ShowDetail""]