';处理空值并显示 0">

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

发布于 2024-08-16 12:14:54 字数 201 浏览 2 评论 0原文

如果 dataitem 为 Null 我想显示 0

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

我怎样才能做到这一点?

If dataitem is Null I want to show 0

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

How can I accomplish this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

洒一地阳光 2024-08-23 12:14:54

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

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

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.

青衫负雪 2024-08-23 12:14:54

我将其用于字符串值:

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

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>
窝囊感情。 2024-08-23 12:14:54

我在 VB.Net 中使用以下内容:

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

I use the following for VB.Net:

<%# If(Eval("item").ToString() Is DBNull.Value, "0 value", Eval("item")) %>
裂开嘴轻声笑有多痛 2024-08-23 12:14:54

它应该也有效

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

It should work as well

Eval("item") == null?"0": Eval("item");
林空鹿饮溪 2024-08-23 12:14:54

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

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

Moreover, you can use (x = Eval("item") ?? 0) in this case.

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

〗斷ホ乔殘χμё〖 2024-08-23 12:14:54

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

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

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

I don't know ASP.NET very well, but can you use the ternary operator?

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

Something like:
(x=Eval("item")) == Null ? 0 : x

德意的啸 2024-08-23 12:14:54

使用 IIF。

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

Use IIF.

<asp:Label ID="Label18" Text='<%# IIF(Eval("item") Is DBNull.Value,"0", Eval("item") %>' 
runat="server"></asp:Label>
缱绻入梦 2024-08-23 12:14:54

尝试这个代码,它可能有用 -

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

try this code it might be useful -

<%# ((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>")%>
长安忆 2024-08-23 12:14:54

使用杰森答案的修改版本:

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

  return myValue.ToString();
}

Used a modified version of Jason's answer:

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

  return myValue.ToString();
}
|煩躁 2024-08-23 12:14:54

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

Try replacing <%# Eval("item") %> with <%# If(Eval("item"), "0 value") %> (or <%# Eval("item") ?? "0 value" %>, when using C#).

箜明 2024-08-23 12:14:54

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

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

I have tried this code and it works well for both null and empty situations :

'<%# (Eval("item")=="" || Eval("item")==null) ? "0" : Eval("item")%>'
就是爱搞怪 2024-08-23 12:14:54

您可以将以下内容用于 VB.net,特别是当该值是布尔值时:

<%# IIf(Eval("mydata").Equals(DBNull.Value), 0, Eval("mydata"))%>

例如,使用它来自动选中或取消选中具有内联 IIF eval 的复选框: 使用

<asp:CheckBox ID="mycheckbox" runat="server" Checked='<%# IIf(Eval("mydata").Equals(DBNull.Value), 0, Eval("mydata"))%>' />

.ToString 的其他方法将导致尝试转换 DBnull 时出错为布尔值。

You can use the following for VB.net, especially if the value is a boolean:

<%# IIf(Eval("mydata").Equals(DBNull.Value), 0, Eval("mydata"))%>

For example, use this to automatically check or uncheck a checkbox with inline IIF eval:

<asp:CheckBox ID="mycheckbox" runat="server" Checked='<%# IIf(Eval("mydata").Equals(DBNull.Value), 0, Eval("mydata"))%>' />

The other method with .ToString will cause an error trying to convert the DBnull to a boolean.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文