If dataitem is Null
I want to show 0
\' runat=\"server\">
You can also create a public method on the page then call that from the code-in-front.
e.g. if using C#:
public string ProcessMyDataItem(object myValue)
{
if (myValue == null)
{
return "0 value";
}
return myValue.ToString();
}
Then the label in the code-in-front will be something like:
<asp:Label ID="Label18" Text='<%# ProcessMyDataItem(Eval("item")) %>' runat="server"></asp:Label>
Sorry, haven't tested this code so can't guarantee I got the syntax of "<%# ProcessMyDataItem(Eval("item")) %>
" entirely correct.
I'm using this for string values:
<%#(String.IsNullOrEmpty(Eval("Data").ToString()) ? "0" : Eval("Data"))%>
You can also use following for nullable values:
<%#(Eval("Data") == null ? "0" : Eval("Data"))%>
Also if you're using .net 4.5 and above I suggest you use strongly typed data binding:
<asp:Repeater runat="server" DataSourceID="odsUsers" ItemType="Entity.User">
<ItemTemplate>
<%# Item.Title %>
</ItemTemplate>
</asp:Repeater>
I have tried this code and it works well for both null and empty situations :
'<%# (Eval("item")=="" || Eval("item")==null) ? "0" : Eval("item")%>'
Try replacing <%# Eval("item") %>
with <%# If(Eval("item"), "0 value") %>
(or <%# Eval("item") ?? "0 value" %>
, when using C#).
Moreover, you can use (x = Eval("item") ?? 0) in this case.
http://msdn.microsoft.com/en-us/library/ms173224.aspx