【问题标题】:TextBox Auto Expandable in ASP.NETASP.NET 中的文本框自动扩展
【发布时间】:2011-04-25 07:14:29
【问题描述】:

我有一个这样的TextBox

<asp:TextBox id="TextBox1" TextMode="SingleLine" runat="server" />

没有Javascript或任何其他技术,有什么方法可以制作Auto Expandable

我可以用ASP.NET 做到这一点吗? (可能有一些属性)

或者什么是最简单的方法?

【问题讨论】:

  • “自动扩展”是“文本框”的自动调整宽度。当我写 5 个字母时,'TextBox.Widht' 应该是 50 像素,例如 10 个字母应该是 100 像素..!

标签: c# asp.net textbox expandable


【解决方案1】:

如果你打算使用 ajax 控件工具包,你可以使用 ASP.NET AJAX ResizableControl Extender。(我认为它内部使用了 javascript),我不知道任何其他非 javascript 方式。

【讨论】:

  • 但这不是自动正确的吗?是的,它可以提供重新调整大小的属性,但用户必须更改控件的大小。有没有自动的方法?
  • 我不知道。基本上,客户端的每个动作都由 javascript 处理。这是浏览器唯一能理解的语言。
【解决方案2】:

如果您已经知道内容并且不希望在用户键入时动态更改宽度,则只能在没有 javascript 的情况下制作它。类似Width="&lt;%=(SourceString.Length * 10)%&gt;"

【讨论】:

  • 如果你已经知道让用户输入内容的目的是什么(除非你正在做一些类型测试)
  • 这是不使用 javascript 的限制 ;)
  • @bortao 你知道正确的语法吗? Width="" 不起作用。
  • 只需将 TextBox1.Width = SourceString.Length * 10 放在您的 Page_Load 上
  • @bortao 需要命名空间吗?找不到源字符串??
【解决方案3】:

您可以使用动态服务器标签来设置宽度。

Width='<%# (Eval("DataSourceField").ToString().Length * 8)%>'

【讨论】:

    【解决方案4】:
    protected void TextBox1_TextChanged(object sender, EventArgs e)
        {
            int i = TextBox1.Text.Length;
            int rowsize = (i / 10)+2;
            TextBox1.Rows = rowsize;
            TextBox1.Focus();
        }
    

    试试这个............

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-06
      • 2020-11-02
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多