ASP.Net / C#:替换数据绑定字段中的字符

时间:2013-01-29 15:13:00

标签: c# asp.net ascx

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

<%# Eval("Description")%>

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

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

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

但当然,数据绑定操作(<%#)中不允许这样做。

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

2 个答案:

答案 0 :(得分: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") %>

答案 1 :(得分:0)

你可以将数据绑定到一个匿名类型,其中包含从代码隐藏中填充的所有所需信息(包括此信息) - 比将其提取到变量要简单得多。