В каком случае следует устанавливать свойства динамического управления? - PullRequest
2 голосов
/ 23 февраля 2012

В этой статье говорится, что 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";
}

это правильный путь?

Наконец, в каком случае следует устанавливать свойства динамического управления?

1 Ответ

1 голос
/ 23 февраля 2012

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

Если запрос является обратной передачей, значения элементов управления еще не был восстановлен из вида государства. Если вы установите свойство управления на этом stage, его значение может быть перезаписано в следующем событии.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...