2009-07-12 8 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 요소의 내부에 라벨을 부착 할 수있는 경우

그러나 텍스트에 브라우저가 단어 분리로 감지하는 내용이없는 경우 디자인 전체가 손상 될 수 있습니다.

그래서 대개 필요할 경우 큰 문자열을 수동으로 분할합니다. 그렇지 않으면 CSS 대신 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

최종 답 :은 지금 귀하의 질문에

내가 당신을 위해 쓴, 나에게 더 명확 된 것은, 그것을 잘 작동 확인

:

<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