每个指定字符最佳的换行方式是什么?(asp.net)

6
我在我的asp.net网站上遇到了一个问题,无法在特定字符上进行换行。我有一个包含用户帐户的gridview,其中有一个“权限”列/字段,数据是使用管道输入的,例如以下内容:
'Admin|Trader|Support|Sales'
我知道这不是最好的数据架构,但必须保持这样,直到我们在数据库中添加权限表。
现在,我想在实际的gridview中显示以下内容:
Admin Trader Support Sales
换句话说,我想用换行符替换每个管道,或者至少在每个管道处添加一个换行符,以便每个权限都在单独的行上。
在我的CSS类中有没有一种方法可以做到这一点?我查看了不同的属性,例如white-space,text-overflow和word-wrap,但到目前为止,我还没有找到任何可以说“在任何出现此字符的情况下换行文本”的东西。我想我可以使用jQuery来解决这个问题,但似乎应该有一个更简单的解决方案。
如果jQuery是正确的选择,则可以提供一个示例,因为我是新手。
感谢任何帮助!

您希望这些值在不同的行中显示还是在同一行中显示? - U.P
我认为你应该预处理字符串并将管道符替换为换行符。可以参考这个链接:http://jsfiddle.net/jQqyx/。 - skovalyov
我想要将值放在单行中。我认为现在我已经基本弄清楚了,但该字段还需要可更新,因此在更新时需要一种将换行符切换回管道的方法。不过我认为这应该可以使用相同的方法完成。谢谢! - chow_land
2个回答

4
一个可能的解决方案:
var orig = $('#menu').html();
$('#menu').html(orig.replace(/\|/g,'<br />'));​

DEMO


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/>");
}

感谢您的帮助。我忘记提到这个字段是可编辑的,所以当字段更新时,我需要一种方法将换行符切换回管道符,但我认为(希望)在GridView的“更新”事件中应该相当简单。 - chow_land

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接