asp.net значение текстового поля не меняется

#asp.net #postback

#asp.net #обратная передача

Вопрос:

Я знаю, что это очень распространенный вопрос, но, похоже, моя ситуация немного типична.

Я извлекаю значение, которое будет отображаться при textbox загрузке страницы.

поэтому не имеет значения, сколько загрузок страницы произойдет, я получу правильное значение.

  page_load()
    {
        TBName.Text = XYZObject.getName();
    }
  

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

в чем может быть проблема???

Спасибо

Комментарии:

1. можете ли вы вставить сюда HTML этого текстового поля?

2. Прежде всего, если что-то будет одинаковым при загрузке страницы, поместите это в Post. Это обратная отправка… В текущем случае — есть ли у вас какое-либо событие в самом текстовом поле?

Ответ №1:

Нет, @harish, ваша ситуация совсем не типична. На самом деле, это наиболее распространенная ситуация в asp.net по-моему, мир.

Здесь вы имеете дело со случаем, когда вы нажимаете на точку останова и загружается ViewState, т. е. применяется к состоянию элементов управления, и у вас есть правильное значение, введенное пользователем. В итоге вы получаете значение, которое вы снова присвоили в своем блоке кода при загрузке страницы.

попробуйте это вместо:

 page_load()
    {
        if(!IsPostBack)         
            TBName.Text = XYZObject.getName();
    }
  

Ответ №2:

Проблема заключалась в том, что текстовое поле было доступно только для чтения.

Ответ №3:

может существовать другая функция, подобная «clearFields()», которая очищает текстовое поле. Или getName сначала возвращает строку, но затем она возвращается пустой, так что текстовое поле очищается.

я предполагаю две возможности.

Ответ №4:

Если я правильно понимаю, значение остается неизменным без отладки, но оно изменяется при отладке?
Продолжайте отладку с помощью F10 и покажите TBName.Text в окне просмотра. Затем вы можете точно увидеть, в какой строке кода значение изменяется обратно.