В этой статье говорится, что Page_PreInit
следует использовать для
создания или повторного создания динамических элементов управления.
Дляпример:
Button button = new Button();
somePanel.Controls.Add(button);
Хорошо.Я понимаю.
Однако , он также говорит:
Если запрос является обратной передачей, значения элементов управления еще не были восстановленыс точки зрения состояния.Если вы установите свойство элемента управления на этом этапе, его значение может быть перезаписано в следующем событии.
Да?
Означает ли это, что все, что я долженсоздать кнопку, но не установить ее элементы?
Например:
Button button = new Button() { CommandArgument="arg" };
somePanel.Controls.Add(button);
Означает ли это, что настройка CommandArgument
в этом событии неверна / не рекомендуется / может вызвать ошибку / неожиданное поведение?
Предполагается, чтоэто неправильно, это привело бы меня к мысли, что нужно было бы сделать что-то вроде этого:
protected void Page_PreInit(object sender.....)
{
somePanel.Controls.Add((new Button());
}
protected void Page_Init(object sender.....)
{
foreach(Button button in somePanel.Controls)
button.CommandArgument = "arg";
}
это правильный путь?
Наконец, в каком случае следует устанавливать свойства динамического управления?