只有在满足某些条件时才触发asp.net TextChangedEvent?

时间:2011-02-24 16:50:54

标签: c# asp.net

如果我在asp.net文本框上连接了TextChanged事件,则每次添加/删除字符时都会触发。当且仅当文本框符合某些条件时才可以触发它,例如文本框的非空字符串大于5个字符。

2 个答案:

答案 0 :(得分:2)

我认为最好的方法是,如果你因为回发费用而担心,那就是为onchange事件设置一个javascript事件处理程序。在那个javascript函数中你可以快速查看长度是否大于5,然后做一些事情回发到服务器(例如,javascript函数可以点击一个隐藏的按钮回发,虽然还有其他方法)。

示例(使用jQuery):

首先,javascript:

    function checkTextBox() {
    var textBox = $('#<%=tbTest.ClientID %>');
    var hiddenButton = $('#<%=hdnButton.ClientID %>');
    if (textBox.val().length > 5)
        hiddenButton.click();
}

然后,这些是ASP.NET控件:

<asp:TextBox runat="server" ID="tbTest" 
 AutoPostBack="false" onchange="checkTextBox()" ></asp:TextBox>
<asp:Button runat="server" ID="hdnButton" style="visibility:hidden" />

只有在您离开文本框后才会触发此事件。如果您想在键入时将其发生,可以将其更改为另一个事件,例如onkeyup。

答案 1 :(得分:0)

为什么不在事件处理程序中检查TextBox的内容,只有在长度超过5个字符时才能继续?