Использование Eval () в сочетании с проверкой наличия значения - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь сделать Eval() в столбце даты, и я только что решил, что не знаю, как ссылаться на часть

? true : false

из

<%# Eval("Date") ? true : false %>

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

Сказав это, обычный evalбез ? true : false часть работает просто отлично, она извлекает значение даты из правильного столбца.Проблема в том, что некоторые из них не заполнены, поэтому перед тем, как я что-то еще сделаю, мне нужно проверить, есть ли в столбце даты значение, и вот где у меня возникают проблемы.

Я пробовал это:

<asp:TextBox Text='<%# Eval("Date") ? true : false %>'></asp:TextBox>

и это:

<asp:TextBox Text='<%# Convert.ToBoolean(Eval("Date")) ? true : false %>'></asp:TextBox>

и несколько разновидностей подобных вещей:

<asp:TextBox Text='<%# Eval("Date") ? true : "" %>'></asp:TextBox>

И прежде чем вы спросите, да, у меня есть мой runat="server" (и идентификатор, пара классов и некоторое форматирование строки), я вырезал все, что не имеет отношения к вопросу

Мне кажется, что я на правильном пути, но я пока не совсем понимаю, как использовать часть ? true : false, и я продолжаю сталкиваться с ошибками в духе "Строка недействительное логическое значение "или" Невозможно неявно преобразовать строку в Bool ".

Я пытаюсь проверить значение и, если у него его нет (IsNullOrEmpty), сделать это, в противном случае сделать что-либоостальное.Я думаю, я не уверен, как написать "Есть значение, да или нет?"в середине Eval().Затем я могу добавить CssClass на основе результата.

Я ценю любую помощь, которую может предложить каждый.

Спасибо,

Jay

1 Ответ

0 голосов
/ 15 сентября 2018

Это зависит от типа объекта, который вы привязываете к Control.Но вы можете сделать это

CssClass='<%# Eval("Date") == null ? "ClassA" : "ClassB" %>'

или

CssClass='<%# string.IsNullOrEmpty(Eval("Date").ToString()) ? "ClassA" : "ClassB" %>'

И если вы выводите логическое значение, вы обычно задаете для него свойство, а не текст

Visible='<%# Eval("Date") == null ? true : false %>'
...