【问题标题】:conditional IF logic with date field type具有日期字段类型的条件 IF 逻辑
【发布时间】:2012-02-28 03:58:01
【问题描述】:

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

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

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

如果字段 = 1753-01-01 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")%>'

我尝试了一些变体,但似乎我遇到了语法障碍,或者无法做到这一点。我认为让我失望的是日期格式。

【问题讨论】:

  • 你不想在服务器端这样做。只需在 Javascript 中控制并使用条件语句设置值。 msdn.microsoft.com/en-us/library/aa479011.aspx
  • 我不介意在服务器端进行,我只是认为有一种简单的方法可以修改 ASPX 文件,而不是在后面编写代码。这是一个内网页面,所以我想不写很多代码。

标签: c# asp.net conditional formview


【解决方案1】:

这是另一个“变体”供您尝试,以防其他人不起作用:

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

【讨论】:

    【解决方案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}")%>' />
    

    【讨论】:

      猜你喜欢
      • 2017-08-30
      • 1970-01-01
      • 2016-11-19
      • 2019-01-26
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 2019-08-15
      • 1970-01-01
      相关资源
      最近更新 更多