0

説明フィールドとして機能する複数行のテキストボックスがあります。このテキストボックスには、スペースとリターンを使用して大量の情報を追加できます。段落形式。このテキストを後で表示するLabelと、書式設定がすべて失われ、テキストの壁に変わります。元のフォーマットを維持するためにできることはありますか?

var customerInfo = GetCustomerInfo(itemid);

                if (customerInfo != null)
                {
                    ItemID.Text = customerInfo.ItemID.ToString();

                    Description.Text = customerInfo.Description;

                }

ページのソースは次のようになります

                This is a test

this is a test 

this is a test
1. test
2. test
3. test
4. tes

ラベル/リテラル​​は次のようになります

This is a test this is a test  this is a test 1. test 2. test 3. test 4. tes
4

3 に答える 3

2

書式設定されたテキストを HTML で表示する場合、HTML にはテキストを書式設定する他の方法があるため、書式設定されたテキストは表示されません。すべての書式設定文字 (改行、タブなど) は HTML ではスペースとしてカウントされるため、大量のテキスト ブロックとして表示されます。

HTML で書式設定されたテキストを表示するには、書式設定を、HTML が書式設定に使用するものに変換する必要があります。次に例を示します。

label.Text = myText.Replace("\r\n", "<br>").Replace("\t", "&nbsp;&nbsp;&nbsp;&nbsp;");
于 2012-12-19T21:52:08.760 に答える
1

他に何か投稿しないとよくわかりませんが、これは役立つはずです

 Label1.Text = HttpUtility.HtmlEncode(myStringFromTxtBox);
于 2012-12-19T21:51:07.517 に答える
0

問題は、元のテキストに行区切り文字用のキャリッジ リターン (OS によって異なります) があることですが、HTML では<br />同じ形式を維持するためにそれらを変換する必要があります。

また、Label コントロールはスパンとしてレンダリングされます。runat="server"プログラムでコンテンツを割り当てることができるように、通常の div を使用してプロパティを設定することをお勧めします。

Guffa は、他の文字 (タブ、スペースなど) について別の良い点を指摘しました。それらはすべて、同等の HTML に変換する必要があります。

于 2012-12-19T21:55:51.333 に答える