Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» ASP.NET + C# Динамическое создание контролов

Автор: SouthGuy
Дата сообщения: 16.12.2007 11:25
Я знаю что я тут далеко не первый, кто постит такую тему и да простят меня модераторы!
Вопрос в следующем.....есть такой примерно такой вот код:

protected void Page_Load(object sender, EventArgs e)
{
...........код...........
}

public void PropertyLoad(string username)
{
Tab newTab = new Tab(username);
foreach ("неважно что")
{
..........код.............

Button button2 = new Button();
button2.Text = "Закрыть";
button2.Click += Button2_Click;
newTab.ContentPane.Controls.Add(button2); //Добавление вкладки на таблицу.
UltraWebTab1.Tabs.Add(newTab); //Таблица с вкладками
}
}

protected void Button2_Click(object sender, EventArgs e)
{
........код........
}

Тут всё слишком абстрактно, но не суть важно. Как можно понять, не срабатывает обработчик события при нажатии на кнопку, т.к. элемент управления находится не в Page_load.
Как мне заставить его срабатывать?
Пробовал так:
button2.Click += new EventHandler (Button2_Click); - не пашет.
Знаю что есть PlaceHolder, в MSDN написано что именно он служит "контейнером" для хранения динамически созданных эелементов управления, но конкретных объяснений принципов его работы я не нашел.
Может кто-нить помочь решить проблему? Или объяснить как работает этот PlaceHolder?
Всем спасибо.
Автор: Delphi6
Дата сообщения: 16.12.2007 11:54
SouthGuy
А о каком языке программирования идет речь? Больше похоже на С или Перл, и какое это отношение имеет к веб программированию?

п.с. В каждом языке синтаксис перехвата ивентов реализовывается по разному.
Автор: SouthGuy
Дата сообщения: 16.12.2007 11:57
Может я не туда запоститл...
это ASP.NET + C#
думаю тут с этим сталкивались.
Автор: eLLoco
Дата сообщения: 17.12.2007 06:36
Вот здесь быстрей помогут
Автор: EZH
Дата сообщения: 17.12.2007 12:34
SouthGuy
Пользоваться действительно лучше PlaceHolder-ом, там все просто, надо добавлять контролы в его коллекцию Controls. Но суть тут не в этом. События у тебя не срабатывают, т.к. на новом жизненном цикле страницы (при щелчке по кнопке, в процессеPostBack), этой самой динамически созданной кнопки уже не существует. Соответственно не срабатывает и событие. Тебе надо обеспечить вызов ее создания хотя бы из того же page_load.

Страницы: 1

Предыдущая тема: sqlConnect + sqlDataAdapter + DataSet C#


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.