我的.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
未更新。
如何纠正这个问题?
答案 0 :(得分:9)
听起来您正在考虑在文本框中输入时OnTextChange
事件被触发。这不是真的。 OnTextChange
是服务器端事件,仅在回发页面(或面板)时触发。键入页面上的文本框不会将页面发回,因此只有在您提交表单后才会触发此事件。
在这种情况下,您真正想要做的是使用一些带有onkeypress
JavaScript事件的JavaScript来更新标签文本,因为它们被输入到TextBox中。 JavaScript在客户端上运行,不需要您回发页面以便运行它。