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

本文关键字:条件 IF 逻辑 类型 日期 字段 | 更新日期: 2023-09-27 18:22:36

这更多的是一个语法问题(我认为),但我一直在努力解决它。

我们在ERP系统中创建了一个用户定义的字段。ERP将其填充为1753-01-01 00:00:00.000,而不是NULL。我有一个引用这个UDF的表单视图控件。如果日期是1753年的值,我希望能够有条件地隐藏日期。

所以我想在ASP页面(而不是代码后台)中执行以下操作:

如果字段=1753-01-01 00:00:00.000,则值="If字段!=1753-01-01 00:00:00.000,则值=字段

这是我的标签:

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

我尝试了一些变体,似乎觉得我遇到了语法墙,或者这是不可能的。我想同样让我失望的是日期格式。

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

将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}")%>' />

这里有另一个"变体"供您尝试,以防其他变体不起作用:

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