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

本文关键字:字段 字符 数据绑定 替换 Net ASP | 更新日期: 2023-09-27 17:56:43

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

<%# Eval("Description")%>

数据源从代码隐藏绑定。

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

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

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

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

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

您可以将值强制转换为字符串并按如下所示处理它:

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

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

不过要小心,因为如果Description null你会打NullReferenceException。您可以执行以下操作来避免这种情况:

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

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