Using '<%# Eval("item") %>'; Handling Null Value and showing 0 against
Solution 1:
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.
Solution 2:
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>
Solution 3:
I use the following for VB.Net:
<%# If(Eval("item").ToString() Is DBNull.Value, "0 value", Eval("item")) %>
Solution 4:
It should work as well
Eval("item") == null?"0": Eval("item");
Solution 5:
Moreover, you can use (x = Eval("item") ?? 0) in this case.
http://msdn.microsoft.com/en-us/library/ms173224.aspx