2012-02-06 26 views
0

这是更多的语法问题(我认为),但我一直在努力。条件IF与日期字段类型的逻辑

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

所以我想要做的ASP页面(而不是代码隐藏)以下:

如果字段= 1753年1月1日00:00:00.000,则值= “” 如果字段= 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")%>' 

我已经尝试了一些变体,并且似乎认为我碰到了语法墙,或者这是无法完成的。我觉得还有什么让我失望的是日期格式。

+0

你不想在服务器端做。只需在Javascript中掌握控制权并使用条件语句设置该值即可。 http://msdn.microsoft.com/en-us/library/aa479011.aspx – Ash 2012-02-06 17:17:08

+0

我不介意做它的服务器端,我只是认为会有一个简单的方法来修改ASPX文件,而不是编写代码去做吧。这是一个内联网页面,所以我想在没有写很多代码的情况下这样做。 – Andrew 2012-02-06 17:25:13

回答

2

更改绑定到评估和演示,因为你没有使用双向绑定的标签,你也需要转换为字符串使用==

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