Событие OnTextChanged не запускается - PullRequest
5 голосов
/ 11 апреля 2011

У меня есть TextBox на моей странице .Aspx:

<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 Ответ

9 голосов
/ 11 апреля 2011

Похоже, вы думаете, что событие OnTextChange происходит, когда вы печатаете в текстовом поле. Это неправда. OnTextChange - это событие на стороне сервера, которое запускается только после публикации страницы (или панели). Ввод в текстовое поле на странице не возвращает страницу назад, поэтому это событие будет срабатывать только после отправки формы.

В этом случае вы действительно хотите использовать JavaScript с событием onkeypress JavaScript для обновления текста метки при вводе текста в TextBox. JavaScript запускается на клиенте и не требует, чтобы вы отсылали страницу назад для ее запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...