具有日期字段类型的条件IF逻辑

时间:2012-02-06 17:11:45

标签: c# asp.net conditional formview

这更像是一个语法问题(我认为),但我一直在努力。

我们在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")%>'

我尝试了一些变体,似乎认为我已经达到了语法墙,或者这是无法完成的。我认为什么也让我失望的是日期格式化。

2 个答案:

答案 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")%>'  />