asp GridViewのasp BoundFieldの内容に改行を表示する必要があります。私はもともと\ r \ nを持っていましたが、ページはこの行を完全に無視していました。 2番目の行は、改行を文字列に置き換えることでしたが、文字列内のどこにでもリテラルテキストが表示されました。私が技術的にやった最後のことはうまくいきました。要素のHTMLエンコーディングを "false"に設定してフィールドの文字列を入力することで実現しました。私がこのソリューションで問題となっているのは、これがセキュリティ上の懸念を引き起こす可能性があると聞きました。 HTMLのエンコーディングをfalseに設定せずに、これらのフィールドに改行を挿入するにはどうすればいいですか?HTML符号化をオフにしないでasp GridView BoundFieldに改行を正しく表示する方法
答えて
、HTMLの扱い改行、タブやスペースなどの一般的なホワイトスペース、およびレンダリングのために複数の空白文字を1つのスペースに縮小します。したがって、HTMLに改行を含めても、通常はテキストがブラウザに表示される方法には影響しません。このトピックの詳細と背景については、これまでのquestionを参照してください。非常に有益なコメントがあります。
ただし、テキストの改行をブラウザの改行としてレンダリングするには、HTMLエンコードをオフにしたり、セキュリティ上の懸念を招くことなく、純粋なCSSでこれを実現できます。 white-space CSS propertyは標準であり、長い間、すべての主要なブラウザでサポートされており、ブラウザに改行をそのまま表示するように指示することができます。下に示されているようにCSSスタイルを含めるようにASP.Net GridView
によって生成されたHTMLを変更
は<ItemStyle>
タグを使用することによって達成することができます。代わりにあなたもwhite-space: pre;
を試みることができるwhite-space: pre-line;
を使用しての
<style>
.preformatted
{
white-space: pre-line;
}
</style>
<asp:GridView runat="server" ...>
<Columns>
<asp:BoundField ...>
<ItemStyle CssClass="preformatted"/>
</asp:BoundField>
</Columns>
</asp:GridView>
が、これはとりテキストを十分な改行が含まれていない場合は、グリッドの列が広がりすぎる可能性があります。
これは動作します。あなたの答えを受け入れる前に、なぜこれが機能するのか説明できますか?これがなければなぜうまくいかないのでしょうか?私は他のタイプの改行(
)を試しましたが、なぜaspxはデフォルトで何をすべきかを行うために余分な指示が必要ですか? –
こんにちは@アダムそれは良い点です。私は、ホワイトスペースの扱いをカバーする特定の質問へのリンクを含めるように答えを修正しました。 – Rob
GridViewのRowDataBound
イベントで検索と置換ができます。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//check if the row is a datarow
if (e.Row.RowType == DataControlRowType.DataRow)
{
//find the boundfield cell
string cellValue = e.Row.Cells[0].Text;
//replace the encoded <br> with a real one and put the string back
e.Row.Cells[0].Text = cellValue.Replace("<br />", "<br />");
}
}
あなたは<br>
のように、より多くのbr
タイプを含めるように置き換える拡張する必要があり、<br/>
、<BR>
など
- 1. Response.WriteはHTMLタグを正しく表示&符号化しません。
- 2. aspにテキストを追加する方法:GridViewのBoundField?
- 3. uint32_tを符号なしに正しくキャストする方法
- 4. ユーロ記号がHTML内に正しく表示されない
- 5. テキストボックスに改行が正しく表示されない
- 6. DropDownListをGridViewに選択して、GridView BoundField
- 7. DBレコードIDをGridView行(ASP GridView)に正しくバインドするにはどうすればよいですか?
- 8. gridviewが正しくデータを表示していない
- 9. ModelState.AddModelErrorがHTMLを符号化します
- 10. jQueryで表示後に要素を正しく表示する方法:なし
- 11. Emacsブランクモードで改行文字を表示しない方法
- 12. HTML非改行スペースが正しく機能していない
- 13. iisなしでサーバーにaspページを表示する方法
- 14. HTMLマークアップでgridviewのBoundFieldのカスタムメッセージ
- 15. 改行時に区切り記号を非表示にする方法は?
- 16. Mac OS Xで改行のあるボタンが正しく表示されない
- 17. イメージをbase64Stringとして符号化する適切な方法
- 18. C符号付きを符号なしに維持する正確なビット
- 19. ASPリピータが正しい順序でデータを表示しない
- 20. "encodeURIComponent"がHTML改行を改行記号に変換しないようにします。
- 21. HTML ::エンティティとアポストロフィを符号化する
- 22. Z3で正確にnの符号化
- 23. NSRulerView行番号をメインテキストに正しく整列する方法
- 24. 改行フィードでファイルを暗号化する方法
- 25. 符号なしchar * single_charのビット表現を表示します。
- 26. テーブルの行数を正しく表示する方法
- 27. CakePHP - Htmlヘルパーハイパーリンクに改行/改行を挿入する方法
- 28. htmlオーディオプレーヤーの左側にアイコンを正しく表示する方法は?
- 29. 行をグループ化し、番号を科学的表記で表示しない
- 30. 正規表現と、改行や段落を示す記号にマッチする正規表現ですか?
htmlの改行は '\ r \ nではなく、 '
'です。 – VDWWD
しかし、HTMLエンコード=偽がない限り、私のサイトは文字通り「
」と表示されます。 –
GridViewからコードを表示できますか? – VDWWD