2009-07-12 18 views
0

内容がラベルの幅を超えた場合、改行を改行することは可能ですか? (複数行のテキストボックスのように) 単語ラップcssがありますが、クロスブラウザではありません。のプロパティがあり、私は考えていないX文字ごとにラベル内に改行を入れます

string content = HttpUtility.HtmlEncode(content); 
int len = content.Length; 
for (int i = 80; i < len; i = i + 80) 
{      
    content = content.Insert(i, "<br>");      
} 
return content; 

答えて

0

それとも私は今それを行うように、すべてのx文字を<br>タグを挿入することにより、手動でそれを破る必要があるが(多分、より良い方法があります)あなたが必要とすることをするためのasp:ラベル。しかし、私はこのようなことが必要なときに私がしていることを一般的にやっています!

<div style="width:80px"><asp:label id="lbl" runat="server" 
text="abcdefghij klmnopqrstuvwzyz1234567890 
abcdefghijklmnopqrstuvwzyz12345678 
90abcdefghijklmnopqrstuvwzyz1234567890ab 
cdefghijklmnopqrstuvwzyz123 
4567890abcdefghijklmnopqrstu 
vwzyz1234567890abcdefghijkl 
mnopqrstuvwzyz1234567890abcdefgh 
ijklmnopqrstuvwzyz1234567890" /></div> 
:あなたがあなたのテキストがスペースでのテキストで構成されている場合、CSSは、あなたのためのワードラップの世話をするの幅を設定することができますHTML要素の内側にラベルを固執することができた場合は

しかし、テキストにブラウザが単語区切りとして検出したものがない場合は、文字列全体を1つの巨大な行に吐き出すだけで、デザインが壊れてしまいます。

私は通常、手作業で大きな文字列を分割します。そうでなければ、私はCSSを使ってそれを行います。

0

クロスブラウザと互換性があることは、ラベルをブロックに変更することです。サーバー側の処理を行う必要はありません。私の推測では、これまでレンダリングしていたものが<span />にレンダリングされるので、幅は機能しません。

この

span.mylablel { 
    display: block; 
    width: 100px; 
} 

が、これはラベルのためにこれを行います何のプロパティがありません

+0

私はこのスタイル= "display:block; width:100px;"を追加しました。ラベルに。影響しませんでした。 –

+0

生成されたHTMLを投稿できますか?あなたの問題の原因となっている出力を与えないと解決策を提示するのは難しく、唯一のコードは別の方法で行うべきかどうかの問題です。 –

0

に役立ちます願っています。してみてくださいラベルを使用するのではなく、TextBoxを使用してラベルのように見えるのはなぜですか?次に、組み込みの複数行機能を取得します。これはきれいな解決策であり、改行を実行するためのコード操作を必要としません。

は、おそらくそれはあなたのニーズにフィットする、設定次のプロパティを持つテキストボックスコントロールを使用してみてください:

<asp:TextBox ID="txtFakeMultilineLabel" runat="server" BorderStyle="None" 
BorderWidth="0" Wrap="true" Rows="14" Width="300" ReadOnly="true" 
TextMode="MultiLine">text here or set from code-behind</asp:TextBox> 

あなたが希望のサイズを制御するために、行と幅を設定します。コンテンツが行を超えてスクロールすると、スクロールバーが表示されます。これは望ましいかもしれませんが、簡単な解決策です。

+0

テキストボックス内にカーソルを表示したくない場合(ReadOnly = "true"は削除しない)、テキストボックスの右ボタンコンテキストメニューを表示しないようにするため、テキストボックスを使用できません。 –

+0

テキストボックスを無効にすると、カーソルとコンテキストメニューを無効にすることができます。これの欠点は、テキストをユーザーが選択(コピー/貼り付けなど)することができないことです。そして、あなたは色を更新する必要があります。このようなプロパティを追加するには、Enabled = "false" BackColor = "White" ForeColor = "Black" これは簡単な解決方法で、 –

0

最終的な答え:

[OK]を、今、あなたの質問は、私にはより明確になったことを、

私はそれが正常に動作し、あなたのためにこれを書いた:

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title></title> 
    <style type="text/css"> 

     .TextBox 
     { 
      width : 140px ; 
      display : block ; 
      border : solid 1px black ; 
      cursor :default ;   
      height : 500px ; 
      overflow:hidden ; 
     }   
    </style> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <asp:TextBox ID="TextBox1" runat="server" CssClass="TextBox" ReadOnly="true" 

     Text="  gfsgtgvyhhtthbjyudrjedgjdgjwmedgjmwegdjmewgdj wedjwegjmwgejwegxjw egxjegxjmegxjejmxgewjgx 
     dfsdfsgm;lsdgfml;dgmdl; gmsdl;gsmgklngjhnghl;kfl;dkgdgh d,fhklhkldfmgdklfhndfjhdjkfjhndlkfhld 
     dfjgsdklgnsldkgnsdgkn sldgknsdkgnsdlgksndglksdnglksdn gnsdglksndgsldgn sdlgnsdkglsdgn" 
     TextMode="MultiLine" ></asp:TextBox> 
    </form> 
</body> 
</html> 

は、お楽しみください。)

+0

"width:100px"を設定しただけでは、文字列がスペースのない長い文字列の場合は効果がありません。 –

+0

更新されたバージョンを見てください – Sypress

関連する問題