• Привет, Гость!
  • Войти
  • Регистрация
  • Записи
  • Форумы
  • Люди
  • Файлы
  • Работа
  • Технологии

Динамические контролы

Все форумы  Поиск  Правила  Помощь 
 Активные темы  Темы без ответов
Привет, гость! Войти
Форумы GotDotNet.Ru » ASP.NET WebForms » Динамические контролы
Страницы: 1
RSS
Динамические контролы
wms
Сообщений: 4 Регистрация: 31.01.2010
#1
31.01.2010 22:30
Привет! Вопрос такого плана,как реализовать события у динамических контролов? Контрол создается так:
PlaceHolder1.Controls.Add(new Button()); - как теперь реализовать обработку событий у этой кнопочки? Идея создавать до 50 кнопок, которые в свою очередь при нажатии загружают рандомно картинки
 
 
CrazyDog
Сообщений: 247 Регистрация: 27.03.2006
#2
01.02.2010 0:33
Сначала создай и инициализуй свойствами, потом добавляй в контейнер.
Button btn = new Button();
btn.Name = "btn1";
btn.Text="Кнопка 1";
btn.Click += myBtnClick;
PlaceHolder1.Controls.Add(btn);



private void meBtnClick(object sender, "тип аргументов не помню" e)
{
Button bnt = (Button)sender;
if (bnt.Name == "btn1")
{
//Нажал кнопку 1
}

и т.д.
}
Тот кто употребляет выражение "Легче, чем отнять леденец у ребенка" вряд ли когда-нибудь пытался это сделать.
 
 
Victor1
Сообщений: 141 Регистрация: 03.06.2007
#3
01.02.2010 16:08
А как прикрутить runat="server". Без этого же не будет работать.
 
 
Cromathaar
Сообщений: 3 Регистрация: 01.02.2010
#4
01.02.2010 16:43
Прикрутить куда? К создаваемому на сервере серверному контролу?
 
 
Victor1
Сообщений: 141 Регистрация: 03.06.2007
#5
02.02.2010 7:30
Так создается статистически:
<asp:Button ID="Button2" runat="server" Text="Button" />
Динамически описано выше, но там не указан параметр runat="server", без которого кнопка не будет реагировать на нажатие. Как привязать этот параметр к динамически создаваемой кнопки?
 
 
ntnull
Сообщений: 19 Регистрация: 24.12.2009
#6
02.02.2010 7:51
ну вы ребята даете, CrazyDog все правильно указал. контрол и так серверный.
а то что событие кнопки не работает, это нужно доказать)
 
 
Victor1
Сообщений: 141 Регистрация: 03.06.2007
#7
02.02.2010 8:31
При нажатие на кнопку, функция не запускается (((
 
 
Elwood
Сообщений: 52 Регистрация: 20.02.2007
#8
02.02.2010 10:36
Цитата
Victor1:
При нажатие на кнопку, функция не запускается (((

Да ну, щаз :) Нормально всё.

    public partial class danu : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            Button btn1 = new Button();
            btn1.Text = "baton1";
            btn1.ID = "btn1";
            btn1.Click += new EventHandler(btnclick);
            Button btn2 = new Button();
            btn2.Text = "baton2";
            btn2.ID = "btn2";
            btn2.Click += new EventHandler(btnclick);
            TextBox tbx1 = new TextBox();
            tbx1.ID = "tbx1";
            pholder1.Controls.Add(btn1); // плэйсхолдер на aspx-странице
            pholder1.Controls.Add(btn2);
            pholder1.Controls.Add(tbx1);
        }
        protected void btnclick(object sender, EventArgs e)
        {
            TextBox tbx1 = (TextBox) this.Page.FindControl("tbx1");
            tbx1.Text = ((Button) sender).Text;
        }
    }
 
 
serg_g
Сообщений: 1 Регистрация: 13.04.2005
#9
08.02.2010 19:23
По поводу динамических контролов, вот предположим я создал UserControl и в нём добавляю контролы. UserControl находиться на ajax tabcontainer. Я не могу ни найти эти контролы,имена у них что-то типа "ctl00_cph1_ctrl_Tabs_pnlPropertyValues_ctrlValues­_int_10". И события не получаю.
 
 
Basta-D
Сообщений: 121 Регистрация: 25.10.2007
#10
09.02.2010 10:51
у динамических контролов, ID должен быть постоянным, чтобы при обработке событий среда понимала, куда биндить это событие.
 
 
Zorina
Сообщений: 2891 Регистрация: 15.10.2003
#11
09.02.2010 11:45
serg_g,
У контролов есть свойство ClientID, которое возвращает значение ID в итоговом HTML.
Где именно вы эти контролы ищите, и где "события не получаете"?
Динамически добавленные на форму контролы должны быть восстановлены, включая подписку на события, при каждом постбэке и иметь постоянный ID.
http://asp.net/learn/data-access/ Ищи там где потерял, а не там где светло.
 
 
 
Страницы: 1
Форумы GotDotNet.Ru » ASP.NET WebForms » Динамические контролы
О сайте   Свяжитесь с нами   Конфиденциальность   Версия для печати
Работает на 1С-Битрикс: Управление сайтом ASP.NET  |  Хостинг на Parking.Ru