2011-07-14 24 views
6

大きなテキストデータをラベルに動的にバインドする必要があります。私は、データソースからいくつかの大きなテキストデータを取得し、それをlableにバインドする必要があります。それで、ラベルに複数行のテキストを表示する方法。複数行のテキストをラベルに貼り付けます

答えて

6

最も簡単なだけで

string value = "one\r\ntwo\r\nthree"; 

label.Text = value.Replace(Environment.NewLine, "<br/>"); 

だろう。しかし、あなたが文字列のリストを持っている場合は、リピーターのアプローチを試すことができます

<asp:Label ID="label" runat="server"> 
    <asp:Repeater ID="repeater" runat="server"> 
     <ItemTemplate> 
      <%# Container.DataItem %> <br /> 
     </ItemTemplate> 
    </asp:Repeater> 
</asp:Label> 

とコード

List<string> listOfStrings = new List<string>() 
    { 
     "One", "Two", "Three" 
    }; 

repeater.DataSource = listOfStrings; 
repeater.DataBind(); 
0

"単位"でわからないことは、テキストの長さを測定することです。 をur_stringに追加すると、新しい行が始まります。

が、これはすべてのasp.netのコントロールに有効ではありません

を編集しました。ただasp.net labelhtml spanと表示されますので、ラベル<br />には望ましい効果があります。あなたはこのようなあなたのコードからリテラルでHTMLを記述するため、リテラルのあなたのケースでの使用には

+0

を試みることができますか? –

+0

@Martinho Fernandes 'ur_string'は単なる変数です。 「単位」の違いは、フォントサイズが異なると、テキストの長さが異なることを意味します。 「ユニット」はOPまでです。 –

3

が良いです:

Literal1.Text = "Hello<br/>"+"How are you?".... 

それとも、設定されたプロパティのテキストモード=複数行テキストボックスを使用することができますし、読み取り専用= Trueのように動作しますラベル

1

あなたはちょうどあなたが `ur_string`であり、単位はどのような違いを生むだろうか説明でき、この

Label.AutoSize = false 
関連する問題