如何在Stimulsoft及WebForm Grid View中显示CKEditor数据?
解决Stimulsoft中显示HTML标签内容为纯文本的问题
方法一:使用Stimulsoft内置函数*(推荐)*
Stimulsoft自带HtmlToText函数,可直接将HTML内容转换为纯文本。在报表的文本组件中,将数据表达式修改为:
{HtmlToText(YourDataSource.YourHtmlColumn)}
替换YourDataSource为实际数据源名称,YourHtmlColumn为存储HTML内容的数据库列名。
如果遇到 这类HTML实体未被自动转换的情况,可以叠加Replace函数处理:
{Replace(HtmlToText(YourDataSource.YourHtmlColumn), " ", " ")}
方法二:自定义脚本处理
如果内置函数无法满足需求(比如需要更复杂的标签过滤规则),可以在报表中添加自定义脚本:
- 打开报表的代码编辑器(菜单栏→报表→编辑代码)
- 选择对应的语言(如C#),添加以下函数:
public static string StripHtmlTags(string htmlContent) { if (string.IsNullOrWhiteSpace(htmlContent)) return string.Empty; // 正则匹配并移除所有HTML标签 return System.Text.RegularExpressions.Regex.Replace(htmlContent, @"<[^>]+>", string.Empty); }
- 在文本组件的表达式中调用该函数:
{StripHtmlTags(YourDataSource.YourHtmlColumn)}
方法三:数据库查询时预处理(可选)
如果希望在数据进入报表前就完成转换,可以在SQL查询中添加标签剥离逻辑。以SQL Server为例,可创建自定义函数:
CREATE FUNCTION dbo.StripHtml(@Html NVARCHAR(MAX)) RETURNS NVARCHAR(MAX) AS BEGIN DECLARE @Result NVARCHAR(MAX) = @Html WHILE CHARINDEX('<', @Result) > 0 BEGIN SET @Result = STUFF(@Result, CHARINDEX('<', @Result), CHARINDEX('>', @Result) - CHARINDEX('<', @Result) + 1, '') END RETURN @Result END
查询时直接调用:
SELECT dbo.StripHtml(YourHtmlColumn) AS PlainTextContent FROM YourTable
内容的提问来源于stack exchange,提问作者Abbas
相关产品推荐
相关产品推荐

