Я не могу попасть в событие, когда я нажимаю динамически созданную кнопку - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь сделать программу нажатием кнопки, ввести событие, но я не могу, кто-нибудь может мне помочь?

«foreach» работает, но не входит иЯ не знаю почему.

при нажатии кнопки событие не запускается, но при двойном нажатии все кнопки исчезают

foreach (var Cat in db.Categorias) {
    var id_Categoria = db.Categorias.Where(x => x.IdCategoria.Equals(Cat.IdCategoria)).FirstOrDefault();
    if (id_Categoria != null && Cat.IdCategoria.Equals(Cat.IdCategoria)) {
        UpdatePanel UP_btn_Cat = new UpdatePanel();
        UP_btn_Cat.ID = "UP_btn_Cat_" + Cat.IdCategoria.ToString();
        UP_btn_Cat.UpdateMode = UpdatePanelUpdateMode.Conditional;
        Plh_cat.Controls.Add(UP_btn_Cat);

        Button btn_cat = new Button();
        btn_cat.Text = Cat.NomeCategoria;
        btn_cat.ID = "btn_cat_" + Cat.IdCategoria.ToString();
        btn_cat.Click += new EventHandler(button_Click);
        UP_btn_Cat.ContentTemplateContainer.Controls.Add(btn_cat);

        AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
        trigger.ControlID = btn_cat.ID;
        trigger.EventName = "button_Click";
        UP_btn_Cat.Triggers.Add(trigger);

        Plh_email.Controls.Add(new LiteralControl("<div style='clear: both'></div>"));
    }
}

protected void button_Click(object sender, EventArgs e) {
    Button btn_cat = (Button)sender;

    PlaceHolder plh_msg_cat = new PlaceHolder();
    plh_msg_cat.ID = "plh_msg_cat";

    UpdatePanel UP_mgs_Cat = new UpdatePanel();
    UP_mgs_Cat.ID = "UP_mgs_Cat";
    UP_mgs_Cat.UpdateMode = UpdatePanelUpdateMode.Conditional;
    div_msgs.Controls.Add(UP_mgs_Cat);

    AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
    trigger.ControlID = btn_cat.ID;
    trigger.EventName = "Click";
    UP_mgs_Cat.Triggers.Add(trigger);

    var id = btn_cat.ID;
    Plh_cat.Controls.Add(new LiteralControl("<p class='p_cliente'>123" + id + "</p>"));
}

1 Ответ

0 голосов
/ 23 ноября 2018

Я не уверен, как все это создается, но я бы посоветовал вам прочитать на Страница жизненного цикла .В нем говорится, что все элементы управления должны быть созданы во время события PreInit.Используйте Init для инициализации свойств элемента управления.

Если элементы управления создаются только один раз во время! IsPostBack или в неправильном событии, событие Click кнопки не будет срабатывать.

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