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

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

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

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

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

管理员
交易者
支持
销售

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

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

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

感谢您的帮助!

【问题讨论】:

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

标签: jquery asp.net css gridview line-breaks


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 2014-10-20
    • 2017-01-04
    相关资源
    最近更新 更多