如果内容超出标签的宽度,是否可以将标签分解为新行? (就像在多行文本框中发生的那样) 我知道有一个单词wrap css,但它不是跨浏览器。
或者我需要手动打破它,通过每隔x个字符插入<br>
标记,就像我现在这样做(也许有更好的方法):
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 :(得分:0)
我不认为asp:label的属性可以满足您的需求。但是当我需要这样的东西时,你一般都会做我做的事情!
如果您可以将标签贴在可以设置宽度的HTML元素中,那么css将为您处理自动换行,如果您的文本由带空格的文本组成:
<div style="width:80px"><asp:label id="lbl" runat="server"
text="abcdefghij klmnopqrstuvwzyz1234567890
abcdefghijklmnopqrstuvwzyz12345678
90abcdefghijklmnopqrstuvwzyz1234567890ab
cdefghijklmnopqrstuvwzyz123
4567890abcdefghijklmnopqrstu
vwzyz1234567890abcdefghijkl
mnopqrstuvwzyz1234567890abcdefgh
ijklmnopqrstuvwzyz1234567890" /></div>
但有时如果文本没有任何浏览器检测到的断字符,那么它只会将整个字符串吐出一条破坏你设计的巨大线条。
所以我通常会根据需要手动拆分大字符串,否则我会依靠CSS来为我做。
答案 1 :(得分:0)
跨浏览器兼容的东西是将标签更改为块,然后您不必进行任何服务器端处理。我的猜测是渲染出来的东西,在<span />
渲染出来,所以宽度不起作用。
试试这个
span.mylablel {
display: block;
width: 100px;
}
希望这会有所帮助
答案 2 :(得分: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>
您可以设置行和宽度来控制所需的大小。如果内容溢出行,则会显示滚动条。这可能是也可能不是,但这是一个快速的解决方案。
答案 3 :(得分: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>
享受;)