Глюки с System.Web.UI.WebControls.TextBox
От: Positive Россия  
Дата: 19.11.01 08:40
Оценка:
У меня в обработчке события PageLoad для элемента вышеуказанного типа устанавливается текст посредством одноимённого property. При загрузке странички этот текст на ней в нужном месте появляется, но если его изменить и нажать submit, то в серверном коде попросив опять же свойство Text получим старое значение. Что делать?
Re: Глюки с System.Web.UI.WebControls.TextBox
От: Mishka Норвегия  
Дата: 19.11.01 09:15
Оценка:
Здравствуйте Positive, Вы писали:

P>У меня в обработчке события PageLoad для элемента вышеуказанного типа устанавливается текст посредством одноимённого property. При загрузке странички этот текст на ней в нужном месте появляется, но если его изменить и нажать submit, то в серверном коде попросив опять же свойство Text получим старое значение. Что делать?


Первое что приходит на ум — это установить свойство runat=server у TextBox, если его ещё там нет. Потом может быть, что этот элемент находиться не в форме, а за её пределами, а может быть и вообще формы нет, что не даст возможность передать данные от контрола в "код-за-формой".
Re[2]: Глюки с System.Web.UI.WebControls.TextBox
От: Positive Россия  
Дата: 19.11.01 09:19
Оценка:
Здравствуйте Mishka, Вы писали:

M>Здравствуйте Positive, Вы писали:


P>>У меня в обработчке события PageLoad для элемента вышеуказанного типа устанавливается текст посредством одноимённого property. При загрузке странички этот текст на ней в нужном месте появляется, но если его изменить и нажать submit, то в серверном коде попросив опять же свойство Text получим старое значение. Что делать?


M>Первое что приходит на ум — это установить свойство runat=server у TextBox, если его ещё там нет. Потом может быть, что этот элемент находиться не в форме, а за её пределами, а может быть и вообще формы нет, что не даст возможность передать данные от контрола в "код-за-формой".


Всё это там есть. Если элемент изначально пустой, то Text читается. Т.е я использую форму для добавления записей в DB и их редактирования. При добавлении поля изначально пустые и всё работает. При редактировании я туда заношу старые значения и при любом редактировании всё равно получаю их же.
Re[3]: Глюки с System.Web.UI.WebControls.TextBox
От: Mishka Норвегия  
Дата: 19.11.01 11:13
Оценка:
Что ещё может быть: DataSet всегда хранит старые данные на равне с изменёнными для того, чтоб иметь возможность отката (RejectChanges), потому возможно изменения надо закреплять.
А, кстати, там используется DataGrid на странице? Если да, то возможно у него не установлено сохранять контекст между сессиями.
И ещё — в примерах для книги "Professional: ASP.NET" подобный же пример, но обновление ведётся на уровне записей, то есть для каждой строчки есть три кнопки (update, delete, cancel) при нажатии на которые генерируются сообщения, при обработке которых выполняется SQL-запрос, а потом повторяется привязка DataSet к DataGrid.
Да, и ещё там надо EditItemIndex у DataGrid устанавливать, чтоб сказать, какая запись редактируется
Re[4]: Глюки с System.Web.UI.WebControls.TextBox
От: Positive Россия  
Дата: 19.11.01 12:49
Оценка:
Здравствуйте Mishka, Вы писали:

M>Что ещё может быть: DataSet всегда хранит старые данные на равне с изменёнными для того, чтоб иметь возможность отката (RejectChanges), потому возможно изменения надо закреплять.

M>А, кстати, там используется DataGrid на странице? Если да, то возможно у него не установлено сохранять контекст между сессиями.
M>И ещё — в примерах для книги "Professional: ASP.NET" подобный же пример, но обновление ведётся на уровне записей, то есть для каждой строчки есть три кнопки (update, delete, cancel) при нажатии на которые генерируются сообщения, при обработке которых выполняется SQL-запрос, а потом повторяется привязка DataSet к DataGrid.
M>Да, и ещё там надо EditItemIndex у DataGrid устанавливать, чтоб сказать, какая запись редактируется

У меня TextBox, а не DataGrid
Re[5]: Глюки с System.Web.UI.WebControls.TextBox
От: Mishka Норвегия  
Дата: 19.11.01 14:45
Оценка:
На кнопке submit стоит runat=server?
Re[6]: Глюки с System.Web.UI.WebControls.TextBox
От: Positive Россия  
Дата: 19.11.01 14:47
Оценка:
Здравствуйте Mishka, Вы писали:

M>На кнопке submit стоит runat=server?


Да, стоит. Это всё работает, если перед отображением не устанавливать property Text. Если пустой, то вернётся правильное значение, если нет, то старое.
Re[7]: Глюки с System.Web.UI.WebControls.TextBox
От: Mishka Норвегия  
Дата: 19.11.01 15:03
Оценка: 5 (2)
Здравствуйте Positive, Вы писали:

P>Здравствуйте Mishka, Вы писали:


M>>На кнопке submit стоит runat=server?


P>Да, стоит. Это всё работает, если перед отображением не устанавливать property Text. Если пустой, то вернётся правильное значение, если нет, то старое.


Дошло до меня: в Page_Load надо:
if (!Page.IsPostBack)
{
здесь присваеваешь значение тексту.
}

если без условия, то при каждом submit сначала выполняется Page_Load, а потом обработчик клика "Submit".
Должно заработать.
Re[8]: Глюки с System.Web.UI.WebControls.TextBox
От: Positive Россия  
Дата: 19.11.01 15:19
Оценка:
Здравствуйте Mishka, Вы писали:

M>Здравствуйте Positive, Вы писали:


P>>Здравствуйте Mishka, Вы писали:


M>>>На кнопке submit стоит runat=server?


P>>Да, стоит. Это всё работает, если перед отображением не устанавливать property Text. Если пустой, то вернётся правильное значение, если нет, то старое.


M>Дошло до меня: в Page_Load надо:

M>if (!Page.IsPostBack)
M>{
M> здесь присваеваешь значение тексту.
M>}

M>если без условия, то при каждом submit сначала выполняется Page_Load, а потом обработчик клика "Submit".

M>Должно заработать.

Спасибо. Так работает. У меня с настройками безопасности бардак полный. Комп-то рабочий, вот и делают все что кому не лень. Из-за этого отладка не работает по человечески. А о таком поведении я даже не знал.
Re[9]: Глюки с System.Web.UI.WebControls.TextBox
От: Mishka Норвегия  
Дата: 19.11.01 15:37
Оценка:
Ну и ладушки, справились.
Хочу только исправиться (опечатался выше ): Page_Load вызывается всегда, а условие нужно для определения того, что страница загружается в первый раз.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.