TextBox TextChange事件在vb.net中不起作用

时间:2014-12-28 09:34:06

标签: asp.net vb.net

我正在使用带有TextChange事件的asp文本框控件,尝试将文本设置为标签,因为文本框文本已更改,但是当我从文本框中松开焦点而不是文本更改时它正在工作。 失去焦点的问题是,如果我使用AutoPostBack =“true”,它会刷新影响我其他值的页面......

我在aspx页面上的文本框源代码

<asp:TextBox ID="txtSearchCust" runat="server"  Width = "200" OnTextChanged="txtSearchCust_TextChanged" AutoPostBack="true" />

我的代码页面源代码

 Protected Sub txtSearchCust_TextChanged(sender As Object, e As EventArgs) Handles txtSearchCust.TextChanged
    QtyChk.Text=txtSearchCust.Text
 End Sub

这里QtyChk是我试图设置文本的标签 任何解决方案......?

1 个答案:

答案 0 :(得分:0)

根据您的问题。

<script type="text/javascript">
    function doTextBoxChange() {
        __doPostBack();
    }
</script>

<asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True" onkeydown="return doTextBoxChange();"></asp:TextBox>

<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If IsPostBack() Then
        LabelChange()
    End If
End Sub

Sub LabelChange()
    Label1.Text = "1234"
End Sub

但我认为使用javascript是一个更好的选择。


发布后,这些值会消失,您需要请求值和设置 否则,使用viewstate或session。

使用javascript,不要发布表单数据。

<form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server" onkeyup="return doTextBoxChange();"></asp:TextBox>
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    </div>
</form>

 function doTextBoxChange() {
        var inputValue = document.getElementById("TextBox1").value;
        document.getElementById('<%= Label1.ClientID %>').innerHTML = inputValue;
 }