C # Asp.Net User Control нажатие кнопки - PullRequest
1 голос
/ 02 ноября 2009

В моем коде я загружаю пользовательский элемент управления (uc) в событии page_load. UC содержит кнопку, которая устанавливает текст метки в значение текстового поля. (lblTest.Text = txtText.Text). Это прекрасно работает в событии загрузки моей страницы. Но когда я установил загрузку uc в моем событии Init, метка не была установлена. Когда я устанавливаю точки останова, я вижу, что событие кнопки запускается, текст задается (в коде), но когда загрузка страницы заканчивается, метка становится пустой. Как это возможно?

Ответы [ 3 ]

3 голосов
/ 02 ноября 2009

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

Если вы видите, что оно установлено в отладчике на ожидаемое вами значение, то вполне вероятно, что что-то еще изменит его после факта. Это будет ваш код, ViewState или что-то еще вне вашего немедленного элемента управления. Найдите это, и вы сможете что-то с этим сделать.

1 голос
/ 02 ноября 2009

Я не думаю, что управление полностью существует в init.

Эта статья объясняет цикл событий страницы и может объяснить вашу проблему: http://www.15seconds.com/issue/020102.htm

0 голосов
/ 02 ноября 2009

Для дальнейшего уточнения других ответов.

Каждый раз, когда запускается сайт ASP.Net, пять вещей происходят в очень специфическом порядке . Прочитайте ссылку Люка, чтобы узнать этот порядок и построить соответствующий план.

...