Ниже приведен пример, выполняющий с помощью метода FindControl() поиск динамически добавленного элемента управления и затем удаляющий его:

protected void cmdRemove_Click(object sender, System.EventArgs e)
{
  // Поиск кнопки, вне зависимости от уровня на котором она расположена.
  Button foundButton = (Button)Page.FindControl("newButton");
  // Удаление кнопки.
  if (foundButton != null)
  {
    foundButton.Parent.Controls.Remove(foundButton);
  }
}

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

// Подключение обработчика событий Button.Click.
newButton.Click += new System.EventHandler(this.Button_Click);

На рис. 3.9 демонстрируются все упомянутые концепции. Генерируется динамическая кнопка, при щелчке на которой изменяется текст метки. Две другие кнопки позволяют динамически удалять или восстанавливать кнопку.

Создание динамического элемента управления является особо мощным при сочетании с пользовательскими элементами управления (многократно используемыми блоками интерфейса, которые могут объединять в себе группу элементов управления и HTML). Более подробно о пользовательских элементах управления вы узнаете в главе 14.

Рис. 3.9. Обработка событий с помощью динамически добавленного элемента управления

предыдущая    следующая страница   оглавление

131

Hosted by uCoz