OnTextChanged事件未触发

时间:2011-04-11 16:51:33

标签: 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>

代码背后:

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

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

<ajax:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Label ID="lblMessage" runat="server" Text="" ></asp:Label>
    </ContentTemplate>
</ajax:UpdatePanel>

但是当我在TextBox中输入时。 lblMessage未更新。

如何纠正这个问题?

1 个答案:

答案 0 :(得分:9)

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

在这种情况下,您真正​​想要做的是使用一些带有onkeypress JavaScript事件的JavaScript来更新标签文本,因为它们被输入到TextBox中。 JavaScript在客户端上运行,不需要您回发页面以便运行它。