这更像是一个语法问题(我认为),但我一直在努力。
我们在ERP系统中创建了一个用户定义的字段。 ERP用1753-01-01 00:00:00.000填充它而不是NULL。我有一个引用此UDF的表单视图控件。如果它是1753值,我希望能够有条件地隐藏日期。
所以我想在ASP页面(而不是代码隐藏)中执行以下操作:
如果field = 1753-01-01 00:00:00.000,则value =“” 如果字段!= 1753-01-01 00:00:00.000,则value = field
这是我的标签:
<asp:Label ID="lblReactDate" runat="server"
Text='<%# Bind("UDF_ML_REACT", "{0:MM/dd/yyyy}") %>' />
我想做类似的事情:
<asp:Label ID="lblReactDate" runat="server" Text='<%# Bind("UDF_ML_REACT")%> == "1753-01-01 00:00:00.000" ? "" : <%# Bind("UDF_ML_REACT")%>'
我尝试了一些变体,似乎认为我已经达到了语法墙,或者这是无法完成的。我认为什么也让我失望的是日期格式化。
答案 0 :(得分:2)
将Bind更改为Eval,因为您没有使用Label进行双向数据绑定,所以您还需要转换为字符串以使用==
<asp:Label ID="lblReactDate" runat="server"
Text='<%# Eval("UDF_ML_REACT").ToString() == "1753-01-01 00:00:00.000"
? "" : Eval("UDF_ML_REACT", "{0:MM/dd/yyyy}")%>' />
或
<asp:Label ID="lblReactDate" runat="server"
Text='<%# Eval("UDF_ML_REACT","{0:yyyy}").ToString() == "1753"
? "" : Eval("UDF_ML_REACT", "{0:MM/dd/yyyy}")%>' />
答案 1 :(得分:0)
这是你尝试的另一个“变体”,万一其他人不能工作:
<asp:Label ID="lblReactDate" runat="server" Text='<%# (string)DataBinder.Eval(Container, "DataItem.UDF_ML_REACT") == "1753-01-01 00:00:00.000" ? "" : DataBinder.Eval(Container, "UDF_ML_REACT")%>' />