условная логика IF с типом поля даты - PullRequest
0 голосов
/ 06 февраля 2012

Это скорее вопрос синтаксиса (я думаю), но я боролся с этим.

Мы создали пользовательское поле в нашей системе ERP. Вместо NULL ERP заполняет его 1753-01-01 00: 00: 00.000. У меня есть элемент управления представления формы, который ссылается на эту 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")%>'

Я пробовал несколько вариантов и, кажется, думаю, что попал в стену синтаксиса, или это невозможно сделать. Я думаю, что также сбивает меня с толку форматирование даты.

Ответы [ 2 ]

2 голосов
/ 06 февраля 2012

Измените Bind на Eval, так как вы не используете Label для двухсторонней привязки данных, вам также нужно привести к string для использования ==

<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 голосов
/ 06 февраля 2012

Вот еще одна «вариация», которую вы можете попробовать, если другие не работают:

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