OnTextChanged事件未触发

Chr*_*ris 5 asp.net events textbox

我的.Aspx页面里面有一个TextBox:

<ajax:UpdatePanel ID="UpdatePanel2" runat="server">
    <ContentTemplate>
        <asp:TextBox ID="txtCity" AutoPostBack="true" OnTextChanged="txtCity_TextChanged"
            Width="90%" runat="server" ></asp:TextBox>
    </ContentTemplate>
</ajax:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

代码背后:

protected void txtCity_TextChanged(object sender, EventArgs e)
{
    lblMessage.Text = "you have typed:" + txtCity.Text;
}
Run Code Online (Sandbox Code Playgroud)

对于lblMessage[在同一个.Aspx页面上]:

<ajax:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="lblMessage" runat="server" Text="" ></asp:Label>
    </ContentTemplate>
</ajax:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)

但是当我在TextBox中输入时.lblMessage没有更新.

如何纠正这个?

Ric*_*kir 9

听起来你正在考虑OnTextChange在文本框中输入时触发事件.这不是真的.OnTextChange是服务器端事件,仅在回发页面(或面板)时触发.在页面上键入文本框不会将页面发回,因此只有在您提交表单后才会触发此事件.

在这种情况下,您实际想要做的是使用onkeypressJavaScript事件中的一些JavaScript 来更新标签文本,因为事物被输入到TextBox中.JavaScript在客户端上运行,不需要您回发页面以便运行它.