如何在asp.net c#html中显示文本之间的空格
我有一个奇怪的问题,我直接从数据库获取数据到数据源。数据绑定在带有链接按钮的中继器中 <我的问题是数据库中的数据在字符串的中间可能有多个空间,但是当在前端显示时,只显示空间。在考虑过这是删除空格的标准HTML行为之后,我认为asp.net会通过呈现网页来处理这一问题。此外,当报表导出到excel时,它只有1个空间,而不是2个空间 例如: 2个空间:“南非-开普敦”如何在asp.net c#html中显示文本之间的空格,c#,asp.net,html,spaces,C#,Asp.net,Html,Spaces,我有一个奇怪的问题,我直接从数据库获取数据到数据源。数据绑定在带有链接按钮的中继器中
单一空间:“南非-开普敦”
这是一个不相关的示例,但我的数据实际用于多个空格。您可以用
替换空格,如下所示:
string result = myString.Replace(" ", " ");
这将导致HTML:
"South Africa - Cape Town"
这将使用两个空格正确渲染。最后执行以下操作:
Regex spaceRegex = new Regex("\\s{2,}");
//Only replace subsequent spaces, not all spaces. For example,
//" " (three spaces) becomes " " (1 space, 2 non-breaking spaces).
MatchEvaluator matchEvaluator = delegate(Match match)
{
StringBuilder spaceStringBuilder = new StringBuilder(" ");
for (int i = 0; i < match.Value.Length - 1; i++)
{
spaceStringBuilder.Append(" ");
}
return spaceStringBuilder.ToString();
};
return spaceRegex.Replace(server.HtmlEncode(value), matchEvaluator);
}
Regex-spaceRegex=newregex(“\\s{2,}”);
//仅替换后续空间,而不是所有空间。例如
//“”(三个空格)变为“”(1个空格,2个不间断空格)。
MatchEvaluator MatchEvaluator=代理(匹配)
{
StringBuilder spaceStringBuilder=新的StringBuilder(“”);
for(int i=0;i
2个空格:“南非[space][space]-[space][space]开普敦”单个空格:“南非[space]-[space]开普敦”有没有办法在c#中的代码后面自动执行此操作,这样我们就不必替换所有显示的字符串?您好,谢谢您的回答,非常感谢。我正在寻找一种方法,将自动为我做的替代。手动替换所有应用程序中的每一列将是一项艰巨的工作。好吧,根据您在这里使用的内容,您可能会在某些事件上迭代控制树,例如DataBound,一种方法是用html代码存储它,这样你就不必在读取数据时做太多的工作。将产生更好的性能,但限制您仅在web应用程序中使用数据。我不知道你是否能接受。很好!有一件事:您知道自C#3.0以来,
delegate
shortcut在lambda语句中有一个新的快捷方式吗?您可以使用MatchEvaluator MatchEvaluator=match=>{…}代码>