Как я могу создать EventHandler внутри EventHandler - PullRequest
0 голосов
/ 30 июня 2009

У меня есть некоторый код, который включает в себя динамическое создание новых кнопок, когда пользователь нажимает на конкретную кнопку. Однако EventHandlers, определенные для этих динамически созданных кнопок, не запускаются, когда я нажимаю на любую из них. Вот фрагмент кода ошибочного кода:

protected void Page_Load(object sender, EventArgs e)
{
    .......
    btn1.Click += new EventHandler(this.btn1_Click);
    .......
}

protected void btn1_Click(object sender, EventArgs e)
{
    .......
    LinkButton btn2 = new LinkButton();
    btn2.Click += new EventHandler(this.btn2_Click);
    .........
}

protected void btn2_Click(object sender, EventArgs e)
{
    .......
}

Выполнение кода никогда не входит в btn2_Click (). Я что-то здесь не так делаю?

Ответы [ 2 ]

1 голос
/ 30 июня 2009

Попробуйте объявить LinkButton btn2 как глобальную переменную и подключите событие btn2.Click + = new EventHandler (this.btn2_Click) при создании элементов управления.

0 голосов
/ 30 июня 2009

btn2 исчезает, как только вы выходите из обработчика событий btn1. Это локальная переменная, которая исчезает, как только выходит из области видимости.

Вы когда-нибудь видели вторую кнопку? Вы нажали на это? Если так, то вы нажали не на ту кнопку. Этот, который вы добавили, никогда не появлялся на вашей странице.

Чтобы элемент управления стал видимым (и отображался в HTML), его необходимо поместить в коллекцию Controls видимого элемента управления. Вы ничего с этим не делаете.

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