Logan Risen Ответов: 1

Обновление текстового поля пользователем не обнаружено


Привет, Ин asp.net я использую c#, и у меня есть текстовое поле ASP, я устанавливаю его текст на текущее имя пользователя в коде, а затем есть кнопка обновления, чтобы сохранить его. Когда я проверяю его текст после изменения с "X1" на "X2", он все равно возвращает "X1" вместо "X2".

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

Код, который запускается при загрузке страницы:
UsernameTextBox.Text = DataValue.Action("Users", "Username", "SessionID", value);

Что происходит при нажатии кнопки:
System.Windows.Forms.MessageBox.Show(UsernameTextBox.Text);


текстовый:
<asp:TextBox runat="server" ID="UsernameTextBox" class="form-control" />


Кнопка:
<asp:Button runat="server" id="Save" OnClick="Save_Click" class="btn btn-primary" Text="Save Changes" />

1 Ответов

Рейтинг:
2

Richard Deeming

Не совсем ясно, но наиболее вероятная причина заключается в том, что ваш "Код, который запускается при загрузке страницы" не находится внутри Ан if (!IsPostBack) { ... } блок.

Когда вы нажимаете на кнопку, то Page_Load пожары событий. Если вы не проверите IsPostBack в конечном итоге вы снова запускаете свой код, перезаписывая любое введенное пользователем значение.

Проверьте свойство перед загрузкой значения:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        UsernameTextBox.Text = DataValue.Action("Users", "Username", "SessionID", value);
    }
}


NB: System.Windows.Forms.MessageBox.Show будет НЕ работа в Ан ASP.NET применение. Выполняется код на сервере, и именно там появится messagebox.

Может быть казаться чтобы работать, когда вы отлаживаете код в Visual Studio; но это только потому, что в этом конкретном случае сервер и клиент-это один и тот же компьютер.

Как только вы развернете свой код на реальном сервере, произойдет одно из двух. В лучшем случае код выдает исключение, сообщающее вам, что вы не можете отобразить messagebox в неинтерактивном процессе. Другой вариант заключается в том, что появится окно сообщений на сервере, где никто никогда его не увидит, и ваш код зависает в ожидании, пока кто-то войдет на сервер и нажмет "ОК" на сотни ожидающих сообщений.