Member 13779417 Ответов: 1

Передача данных из текстового поля с помощью ontextchanged - VB.NET


Я знаю, что это базовый материал, но я не могу отредактировать имя, показанное в текстовом поле, и передать его, чтобы я мог его использовать (я использую оператор response.write только для этого примера). Он записывает имя, которое было впервые введено в текстовое поле, а не имя при редактировании. Это как-то связано с обратной связью?

<asp:TextBox ID="txtContactName" runat="server" Autopostback="True" OnTextChanged="TxtContactName_TextChanged" MaxLength="50" TabIndex="1" ></asp:TextBox>

    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        Dim acc As New accounts(accountID)
        txtContactName.text=acc.contactName
    End Sub

    Protected Sub txtContactName_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        response.write(txtContactName.text)
    End Sub


Что я уже пробовал:

Я тоже пробовал его без обратной связи.

CHill60

Разве так не должно быть

Autopostback="true"
т. е. нижний регистр

Member 13779417

Попробовал, но ничего не изменилось. Большое спасибо.

CHill60

Как насчёт

OnTextChanged="txtContactName_TextChanged"

1 Ответов

Рейтинг:
7

Richard Deeming

Каждый раз, когда вы отправляете сообщение обратно на сервер, в том числе из события "autopostback", ваш Page_Load срабатывает обработчик событий.

Этот метод перезаписывает обновленное значение параметра txtContactName элемент управления со значением, полученным из accounts класс.

Такое случается до то TextChanged событие срабатывает, поэтому вы никогда не видите обновленного значения.

Вам нужно проверить IsPostBack недвижимость в вашем доме Page_Load обработчик:

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        Dim acc As New accounts(accountID)
        txtContactName.Text = acc.contactName
    End If
End Sub