54

如果数据项是Null我想显示0

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

我怎样才能做到这一点?

4

11 回答 11

67

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

例如,如果使用 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")) %>”语法完全正确。

于 2009-12-30T12:14:39.077 回答
51

我将它用于字符串值:

<%#(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>
于 2011-09-07T15:29:56.970 回答
13

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

<%# If(Eval("item").ToString() Is DBNull.Value, "0 value", Eval("item")) %>
于 2013-07-02T13:14:09.823 回答
4

它也应该工作

Eval("item") == null?"0": Eval("item");
于 2012-01-04T16:08:45.157 回答
3

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

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

于 2010-01-13T09:19:10.740 回答
1

我对ASP.NET不是很了解,但是可以用三元运算符吗?

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

类似于: (x=Eval("item")) == Null ?0:×

于 2009-12-30T12:00:44.623 回答
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>")%>
于 2013-06-13T05:32:22.630 回答
1

使用了 Jason 答案的修改版本:

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

  return myValue.ToString();
}
于 2017-12-06T21:04:09.090 回答
0

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

于 2009-12-30T11:58:51.737 回答
0

使用 IIF。

<asp:Label ID="Label18" Text='<%# IIF(Eval("item") Is DBNull.Value,"0", Eval("item") %>' 
runat="server"></asp:Label>
于 2011-03-17T09:46:38.550 回答
0

我已经尝试过这段代码,它适用于 null 和空的情况:

'<%# (Eval("item")=="" || Eval("item")==null) ? "0" : Eval("item")%>'
于 2015-02-09T17:30:16.117 回答