【问题标题】:Adding new line to label将新行添加到标签
【发布时间】:2011-01-22 21:14:00
【问题描述】:

我从数据库中获取数据并在标签上显示该数据。我必须在每 35 个字符的标签文本上应用新行。因为在 35 个字符之后,文本会溢出。

你能告诉我怎么做吗?

【问题讨论】:

  • @spender - 我假设是 ASP.NET 标签控件
  • 是的,它是asp.net标签控件

标签: c# .net asp.net .net-3.5


【解决方案1】:
use Environment.NewLine

【讨论】:

  • 浏览器会忽略它,它是html
【解决方案2】:

没有办法做到这一点,你最好创建更多的标签。您可以添加<br/>,但asp.net 会筛选它。考虑将单个标签放入固定宽度的 div 中,文本应自动换行。

【讨论】:

  • "将单个标签放入固定宽度的 div"。很简单。
【解决方案3】:

只需改变标签的样式,让它包裹文本:

style=" width:50px; overflow-y:auto;overflow-x:auto; word-break:break-all;"

更好的是,把它放在你的 CSS 文件中,而不是直接放在控件上。

如果您不喜欢,另一种选择是使用文本框并将其设置为标签,如this 帖子中所述。

【讨论】:

  • 我在 CSS 2.0 和 2.1 中遇到了验证错误。是“断字”CSS 3.0 吗?
  • @Slauma - 是的,它是 CSS 3.0。
【解决方案4】:
//assuming l is a label
for (int i = 0; i < l.Text.Length; i++)
{
  if (i % 35 == 0)
    l.Text.Insert(i, Environment.NewLine) // or use "<br />" for html break since browsers ignore whitespace (except IE 6 in some cases)
}

【讨论】:

    【解决方案5】:

    快速伪代码

    string s = 'value from db';
    string s2 = "";
    int len = s.Length;
    int i = 0;
    while ( i + 35 > len ) {
      s2 += s.Substring( i, 35 ) + "\r\n";
      i+=35;
    }
    s2 += s.Substring( i, len - i );
    label.Text = s2;
    

    如果\r\n不起作用,用
    替换它

    【讨论】:

      【解决方案6】:

      在属性窗口中,您可以更改标签的宽度和高度。您应该根据窗口大小设置标签大小,标签类型的大小必须是像素。

      【讨论】:

      • 对不起,我忘了说你可以在属性窗口和Maximumsize副标题上找到宽度和高度..
      • 它实际上做了什么?它会更改标签的样式。这是通过 CSS 完成的。这是一个好习惯吗??不。为什么??因为它使样式嵌入到您的 ascx 中
      猜你喜欢
      • 1970-01-01
      • 2011-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-09
      • 2015-07-04
      • 2017-08-08
      相关资源
      最近更新 更多