为每个指定字符添加换行符的最佳方法? (asp.net)

Posted

技术标签:

【中文标题】为每个指定字符添加换行符的最佳方法? (asp.net)【英文标题】:Best way to add line break for each specified character? (asp.net) 【发布时间】:2012-10-03 09:59:54 【问题描述】:

我无法在我的 asp.net 网站上的特定字符上出现换行符。我有一个带有“权利”列/字段的用户帐户的网格视图,其中数据通过管道输入,如下所示:

'管理员|交易者|支持|销售'

我知道这不是最好的数据架构,但它必须暂时保持这种状态,直到我们在数据库中添加一个权利表。

现在,我想在实际的 gridview 中显示的是这样的:

管理员 交易者 支持 销售

换句话说,我想用换行符替换每个管道,或者至少在每个管道处添加一个换行符,以便每个权利都在单独的行上。

有没有办法在我的 CSS 类中做到这一点?我查看了不同的属性,例如空格、文本溢出和自动换行,但到目前为止,我还没有找到任何可以说“在任何出现 this 字符时换行”的内容。我想我可以使用 jQuery 来做到这一点,但似乎应该有一个更简单的解决方案。

如果 jQuery 的路要走,那么一个例子将不胜感激,因为我是 jQuery 的新手。

感谢您的帮助!

【问题讨论】:

您希望这些值出现在同一行的不同行中吗? 我假设您应该预处理字符串并用换行符替换管道。类似jsfiddle.net/jQqyx. 我想要一行中的值。我想我现在已经基本弄清楚了,但是该字段也需要可更新,因此我需要一种在更新时将换行符切换回管道的方法。我认为这应该可以用相同的方法来实现。谢谢! 【参考方案1】:

您可以通过多种方式做到这一点。

在数据库中:

SELECT REPLACE(entitlements, '|', '<br/>')

在 jQuery 中:

$('.entitlements').each(function()
    var $obj = $(this);
    var txt = $obj.text();
    $obj.html(txt.replace(/|/g, '<br/>'))
);

在 asp.net 中:

<%# FormatEntitlements(Eval("Entitlements"))%>

public static string FormatEntitlements(string entitlements)

    return (entitlements ?? "").Replace("|", "<br/>");

【讨论】:

感谢您的帮助。我忘了提到这个字段是可编辑的,所以我需要一种在字段更新时将换行符再次切换回管道的方法,但我认为(希望)在“更新”事件中应该是相当直截了当的网格视图。【参考方案2】:

一种可能的解决方案:

var orig = $('#menu').html();
$('#menu').html(orig.replace(/\|/g,'<br />'));​

DEMO

【讨论】:

以上是关于为每个指定字符添加换行符的最佳方法? (asp.net)的主要内容,如果未能解决你的问题,请参考以下文章

在 Perl 中将文件转换为字符串的最佳方法是啥?

字符串常用方法

用linux c语言编写 为一个文件里面的内容的每一行添加一个指定的字符

XSLT 将命名空间前缀添加到元素最佳实践

Python EasyNote 1

Python中去除字符串中空格的方法