使用'<%#Eval(“item”)%>';处理空值并显示0反对

时间:2009-12-30 11:55:43

标签: asp.net dataitem

如果dataitem为Null,我想显示0

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

我该如何做到这一点?

11 个答案:

答案 0 :(得分:67)

您还可以在页面上创建一个公共方法,然后从前面的代码中调用它。

e.g。如果使用C#:

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")) %>”完全正确。

答案 1 :(得分:45)

我将其用于字符串值:

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

您还可以使用以下值作为可以为空的值:

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

此外,如果您使用.net 4.5及更高版本,我建议您使用strongly typed data binding

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

答案 2 :(得分:13)

我将以下内容用于VB.Net:

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

答案 3 :(得分:4)

它也应该有用

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

答案 4 :(得分:3)

此外,在这种情况下你可以使用(x = Eval(“item”)?? 0)。

http://msdn.microsoft.com/en-us/library/ms173224.aspx

答案 5 :(得分:1)

我不太了解ASP.NET,但你能使用三元运算符吗?

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

像:     (x = Eval(“item”))== Null? 0:x

答案 6 :(得分:1)

尝试此代码可能有用 -

<%# ((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>")%>

答案 7 :(得分:1)

使用了杰森回答的修改版本:

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

  return myValue.ToString();
}

答案 8 :(得分:0)

尝试将<%# Eval("item") %>替换为<%# If(Eval("item"), "0 value") %>(或使用C#时<%# Eval("item") ?? "0 value" %>)。

答案 9 :(得分:0)

使用IIF。

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

答案 10 :(得分:0)

我尝试过这段代码,它适用于null和empty情况:

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