Использование '<% # Eval ( "item" )%>'; Обработка нулевой стоимости и отображение 0 против - программирование
Подтвердить что ты не робот

Использование '<% # Eval ( "item" )%>'; Обработка нулевой стоимости и отображение 0 против

Если dataitem Null, я хочу показать 0

<asp:Label ID="Label18" Text='<%# Eval("item") %>' runat="server"></asp:Label>

Как я могу это сделать?

4b9b3361

Ответ 1

Вы также можете создать публичный метод на странице, а затем вызвать это из кода спереди.

например. если используется С#:

public string ProcessMyDataItem(object myValue)
{
  if (myValue == null)
  {
     return "0 value";
  }

  return myValue.ToString();
}

Тогда метка в коде в переднем плане будет выглядеть примерно так:

<asp:Label ID="Label18" Text='<%# ProcessMyDataItem(Eval("item")) %>' runat="server"></asp:Label>

Извините, не протестировал этот код, поэтому не могу гарантировать, что я правильно понял синтаксис "<%# ProcessMyDataItem(Eval("item")) %>".

Ответ 2

Я использую это для строковых значений:

<%#(String.IsNullOrEmpty(Eval("Data").ToString()) ? "0" : Eval("Data"))%>

Вы также можете использовать следующие для значений с нулевым значением:

<%#(Eval("Data") == null ? "0" : Eval("Data"))%>

Также, если вы используете .net 4.5 и выше, я предлагаю вам использовать строго типизированную привязку данных:

<asp:Repeater runat="server" DataSourceID="odsUsers" ItemType="Entity.User">
    <ItemTemplate>
        <%# Item.Title %>
    </ItemTemplate>
</asp:Repeater>

Ответ 3

Я использую для VB.Net следующее:

<%# If(Eval("item").ToString() Is DBNull.Value, "0 value", Eval("item")) %>

Ответ 4

Он также должен работать

Eval("item") == null?"0": Eval("item");

Ответ 6

Я не очень хорошо знаю ASP.NET, но могу ли вы использовать тернарный оператор?

http://en.wikipedia.org/wiki/Ternary_operation

Что-то вроде:   (x = Eval ( "item" )) == Null? 0: x

Ответ 7

попробуйте этот код, это может быть полезно -

<%# ((DataBinder.Eval(Container.DataItem,"ImageFilename").ToString()=="") ? "" :"<a
 href="+DataBinder.Eval(Container.DataItem, "link")+"><img
 src='/Images/Products/"+DataBinder.Eval(Container.DataItem,
 "ImageFilename")+"' border='0' /></a>")%>

Ответ 8

Попробуйте заменить <%# Eval("item") %> на <%# If(Eval("item"), "0 value") %> (или <%# Eval("item") ?? "0 value" %> при использовании С#).

Ответ 9

Использовать IIF.

<asp:Label ID="Label18" Text='<%# IIF(Eval("item") Is DBNull.Value,"0", Eval("item") %>' 
runat="server"></asp:Label>

Ответ 10

Я пробовал этот код и хорошо работает для нулевой и пустой ситуаций:

'<%# (Eval("item")=="" || Eval("item")==null) ? "0" : Eval("item")%>'

Ответ 11

Используется модифицированная версия ответа Джейсона:

public string ProcessMyDataItem(object myValue)
{
  if (myValue.ToString().Length < 1)
  {
     return "0 value";
  }

  return myValue.ToString();
}