Если dataitem Null
, я хочу показать 0
<asp:Label ID="Label18" Text='<%# Eval("item") %>' runat="server"></asp:Label>
Как я могу это сделать?
Если dataitem Null
, я хочу показать 0
<asp:Label ID="Label18" Text='<%# Eval("item") %>' runat="server"></asp:Label>
Как я могу это сделать?
Вы также можете создать публичный метод на странице, а затем вызвать это из кода спереди.
например. если используется С#:
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")) %>
".
Я использую это для строковых значений:
<%#(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>
Я использую для VB.Net следующее:
<%# If(Eval("item").ToString() Is DBNull.Value, "0 value", Eval("item")) %>
Он также должен работать
Eval("item") == null?"0": Eval("item");
Кроме того, вы можете использовать (x = Eval ( "item" )?? 0) в этом случае.
Я не очень хорошо знаю ASP.NET, но могу ли вы использовать тернарный оператор?
http://en.wikipedia.org/wiki/Ternary_operation
Что-то вроде: (x = Eval ( "item" )) == Null? 0: x
попробуйте этот код, это может быть полезно -
<%# ((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>")%>
Попробуйте заменить <%# Eval("item") %>
на <%# If(Eval("item"), "0 value") %>
(или <%# Eval("item") ?? "0 value" %>
при использовании С#).
Использовать IIF.
<asp:Label ID="Label18" Text='<%# IIF(Eval("item") Is DBNull.Value,"0", Eval("item") %>'
runat="server"></asp:Label>
Я пробовал этот код и хорошо работает для нулевой и пустой ситуаций:
'<%# (Eval("item")=="" || Eval("item")==null) ? "0" : Eval("item")%>'
Используется модифицированная версия ответа Джейсона:
public string ProcessMyDataItem(object myValue)
{
if (myValue.ToString().Length < 1)
{
return "0 value";
}
return myValue.ToString();
}