Usuário com melhor resposta
Criando evento dinâmico

Pergunta
-
Olá pessoal, seguinte,
Estou criando um botão em tempo de execução e gostaria que ele executasse um método quando o usuário clicar nele.
Para isso, estou usando este código
protected void CriarBotao(object sender, EventArgs e)
{
Button botao = new Button();
botao.Text = "somente um teste";
botao.Click += new EventHandler(CriarBotao);
this.Page.Form.Controls.AddAt(0,botao);
}
Para o primeiro disparo do evento eu criei um botão e no evento click adicionei o método, assim:
protected void Button1_Click(object sender, EventArgs e)
{
CriarBotao(sender, e);
}
Quando o button1 é clicado ele cria um botão, ao clicar no botão criado ele simplesmente desaparece.
Alguém ja passou por isso?
Respostas
-
Cara fiz uma coisinha rapida aqui mas tem que melhorar.bom, bom nao esta mas deve funcionar e vc melhora ai
protected void Page_Load(object sender, EventArgs e) { if (Session["botoes"] != null) for (int i = 0; i < (Int32)Session["botoes"]; i++) { CriarBotao(); } } private void AddBotao() { Session["botoes"] = (Int32)(Session["botoes"] ?? 0) + 1; } protected void CriarBotao() { Button botao = new Button(); botao.Text = "somente um teste"; botao.Click += new EventHandler(botao_Click); Form.Controls.Add(botao); } void botao_Click(object sender, EventArgs e) { AddBotao(); } protected void Button1_Click(object sender, EventArgs e) { CriarBotao(); AddBotao(); }
Gustavo Rocha, MCTS, MCPD, CSM, Arquiteto de Software - http://subindoaladeira.wordpress.com/- Marcado como Resposta Rique Costa terça-feira, 15 de março de 2011 17:50
Todas as Respostas
-
-
-
Cara fiz uma coisinha rapida aqui mas tem que melhorar.bom, bom nao esta mas deve funcionar e vc melhora ai
protected void Page_Load(object sender, EventArgs e) { if (Session["botoes"] != null) for (int i = 0; i < (Int32)Session["botoes"]; i++) { CriarBotao(); } } private void AddBotao() { Session["botoes"] = (Int32)(Session["botoes"] ?? 0) + 1; } protected void CriarBotao() { Button botao = new Button(); botao.Text = "somente um teste"; botao.Click += new EventHandler(botao_Click); Form.Controls.Add(botao); } void botao_Click(object sender, EventArgs e) { AddBotao(); } protected void Button1_Click(object sender, EventArgs e) { CriarBotao(); AddBotao(); }
Gustavo Rocha, MCTS, MCPD, CSM, Arquiteto de Software - http://subindoaladeira.wordpress.com/- Marcado como Resposta Rique Costa terça-feira, 15 de março de 2011 17:50