asp.net文本框,想要在完整时从单行动态更改为多行

时间:2017-04-11 19:45:39

标签: c# asp.net

对于我的生活,无法找到这个问题的答案,尽管我的期望是多么普遍。

但我有一个表单,所有文本框目前都是单行,90%的时间足以满足此表单的需要。在某些情况下,提交需要更大的文本条目,并且我已经给出的请求是,为了形式美学,文本框保持为单行,除非文本填充它,在这种情况下它动态地更改为多行。 / p>

这样的事情可能吗?我希望有某种事件,最好使用c#codebehind,当超过一定数量的字符时,或当文本超出文本框的宽度时,它会转换为多行。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以轻松地将它们全部设为多行,但指定为一行。

然后在输入JS事件时捕获长度,如果超过指定的长度,则向其中添加行。

//pseudo code
<asp:TextBox runat="server" ID="txt2" TextMode="MultiLine" Rows="1" onchange="resizeBox(this)"></asp:TextBox>

function resizeBox(el){
    if (el.value.length > 20 && el.rows == 1)
        el.rows = 4;
}