6

asp.net サイトの特定の文字で改行が発生しません。次のように、データがパイプで入力される「資格」列/フィールドを持つユーザー アカウントのグリッドビューがあります。

「管理者|トレーダー|サポート|セールス」

これが最適なデータ アーキテクチャではないことは承知していますが、データベースに権限テーブルを追加するまで、当面はこのままにしておく必要があります。

さて、実際のグリッドビューに表示したいのはこれです:

管理者
トレーダー
サポート
セールス

つまり、各パイプを改行に置き換えるか、少なくとも各パイプに改行を追加して、各資格が別の行に表示されるようにしたいと考えています。

私のCSSクラスでこれを行う方法はありますか? white-space、text-overflow、word-wrap などのさまざまな属性を調べましたが、これまでのところ、「この文字の出現時にテキストを折り返す」と言うものは見つかりませんでした。これを行うにはjQueryを使用できると思いますが、もっと簡単な解決策があるはずです。

jQueryを使用する場合は、jQuery を初めて使用するので、例を示していただければ幸いです。

助けてくれてありがとう!

4

2 に答える 2

4

考えられる解決策の 1 つ:

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

デモ

于 2012-10-12T14:52:46.887 に答える
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/>");
}
于 2012-10-12T14:54:17.333 に答える