4

在 ascx 文件中,我正在呈现来自数据绑定字段的数据,如下所示:

<%# Eval("Description")%>

数据源是从后面的代码绑定的。

有时Description其中有一些我需要替换的字符。如果我能做这样的事情,我会很高兴:

<%# Replace(Eval("Description"), "a", "b")%>

当然,这在数据绑定操作中是不允许的(<%#)

我不想在后面的代码中对其进行硬编码,因为在后面的代码中提取字段会很丑陋,也许将其提取到一个变量中,然后在 ascx 页面上输出该变量。我希望有一些(可能非常简单)的方法可以直接在 ascx 页面上进行替换。

4

2 回答 2

16

您可以将值转换为字符串并像这样处理它:

<%# ((string)Eval("Description")).Replace("a", "b") %>

或者

<%# ((string)DataBinder.Eval(Container.DataItem, "Description")).Replace("a", "b") %>

不过要小心,因为如果Descriptionnull,你会碰到NullReferenceException. 您可以执行以下操作来避免这种情况:

<%# ((string)Eval("Description") ?? string.Empty).Replace("a", "b") %>
于 2013-01-29T15:36:08.090 回答
0

您可以将数据绑定到包含您想要的所有信息(包括此信息)的匿名类型,该类型是从代码隐藏中填充的 - 比将其提取到变量要丑得多。

于 2013-01-29T15:39:24.883 回答