none
Saber se o botão foi clicado

    Pergunta

  • Oi,

     Estou precisando de um help urgente, eu criei um botão em tempo de execução, adicionando num PlaceHolder, e preciso saber quando a pessoa clicou neste botão para que ai possa adicionar uma outra rotina,


    Alguem pode me ajudar???
    []s
    segunda-feira, 23 de março de 2009 19:00

Respostas

  • Quando vc adociona em tempo de execução precisa tb criar o delegate  para a função que será executada

    bt.Click +=new EventHandler(bt_Click);

    ...

    void
    bt_Click(object sender, EventArgs e)
    {

    //sua rotina

    }


    Fernando Cerqueira MVP.ASP.NET TEAM AJAX.TOOLKIT CONSULTOR & ARQUITETO
    segunda-feira, 23 de março de 2009 19:20
  • Olá,

    Pelo que eu entedi, você está criando botões dinamicamente e gostaria de realizar algumas rotinas quando o usuário clica em algum botão, porém é realizada uma rotina específica para cada botão. Seria isso?

    Caso sim, segue abaixo um exemplo:

    using System; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
     
    public partial class _Default : System.Web.UI.Page 
        protected void Page_Load(object sender, EventArgs e) 
        { 
            for (int i = 0; i < 10; i++) 
            { 
                Button button = new Button(); 
                button.ID = string.Concat("btn_", i); 
                button.Text = i.ToString(); 
                button.Click += new EventHandler(button_Click); 
     
                PlaceHolder1.Controls.Add(button); 
     
                LiteralControl literal = new LiteralControl("&nbsp;"); 
                PlaceHolder1.Controls.Add(literal); 
            } 
        } 
     
        void button_Click(object sender, EventArgs e) 
        { 
            Button button = (Button)sender; 
            Response.Write(button.ID); 
        } 


    No exemplo acima são criados botões dinamicamente, no evento Click do botão, através do objeto sender é possível verificar qual botão foi clicado. Portanto, você pode executar uma rotina específica de acordo com o ID ou Text do botão, por exemplo.

    []'s
    Rafael Fagundes
    sexta-feira, 27 de março de 2009 19:08

Todas as Respostas

  • Quando vc adociona em tempo de execução precisa tb criar o delegate  para a função que será executada

    bt.Click +=new EventHandler(bt_Click);

    ...

    void
    bt_Click(object sender, EventArgs e)
    {

    //sua rotina

    }


    Fernando Cerqueira MVP.ASP.NET TEAM AJAX.TOOLKIT CONSULTOR & ARQUITETO
    segunda-feira, 23 de março de 2009 19:20
  • Olá tudo bem?
     
    Tambem ja tive esta duvida, vou colocar o link para que você possa ver o exemplo http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/a814d041-9382-4b90-b02a-2117011929ea
    segunda-feira, 23 de março de 2009 19:34
  • Fernando, mas neste caso eu devo ter mais de um botão criado, e estou passando uma referencia pela propriedade ID do Button, so que e adicionando a informação que voce disse no botao.

    no meu bt_click eu estou utilizando o seguinte:

    foreach (Control Pergunta in PlaceHolder.Controls)
    {
        if (Pergunta is Button)
          {
         
          }
    }

    O Problema eh dentro do deste codigo saber qual deles eu cliquei... tem alguma ideia?


    []s
    segunda-feira, 23 de março de 2009 19:50
  • ninguem??
    []s
    sexta-feira, 27 de março de 2009 14:36
  • Se você aceita um POG.
    Na criacao do botao adiciona um atributo.

    Button bt = new Button();
    bt.Attributes.Add("controle",id.ToString());
    .....
    .....

    Quando ele for clicado você recupera o atributo.

    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    sexta-feira, 27 de março de 2009 17:28
  • Olá,

    Pelo que eu entedi, você está criando botões dinamicamente e gostaria de realizar algumas rotinas quando o usuário clica em algum botão, porém é realizada uma rotina específica para cada botão. Seria isso?

    Caso sim, segue abaixo um exemplo:

    using System; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 
     
    public partial class _Default : System.Web.UI.Page 
        protected void Page_Load(object sender, EventArgs e) 
        { 
            for (int i = 0; i < 10; i++) 
            { 
                Button button = new Button(); 
                button.ID = string.Concat("btn_", i); 
                button.Text = i.ToString(); 
                button.Click += new EventHandler(button_Click); 
     
                PlaceHolder1.Controls.Add(button); 
     
                LiteralControl literal = new LiteralControl("&nbsp;"); 
                PlaceHolder1.Controls.Add(literal); 
            } 
        } 
     
        void button_Click(object sender, EventArgs e) 
        { 
            Button button = (Button)sender; 
            Response.Write(button.ID); 
        } 


    No exemplo acima são criados botões dinamicamente, no evento Click do botão, através do objeto sender é possível verificar qual botão foi clicado. Portanto, você pode executar uma rotina específica de acordo com o ID ou Text do botão, por exemplo.

    []'s
    Rafael Fagundes
    sexta-feira, 27 de março de 2009 19:08
  • Rafael,

    Muito bom seu exemplo. Tenho que criar uma pagina onde o usuário vai poder acrescentar criterios, entenda criteiros como textbox e um botão de excluir, ou seja, o usuário poderá acrescentar varios textbox e se quiser poderá excluir também, com isso vou precisar de criar dinamicamente um textbox e um botão excluir que se clicado deverá sumir com o textbox criado. Vide exemplo no site: http://www.google.com/finance/stockscreener neste site você pode adicionar e excluir criterios.

    Você teria algum exemplo? Já quebrei a cabeça mas ainda não conseguir resolver. Consiguir criar os textbox e os botões de excluir na frente de cada um, porém não consigo fazer os texbox sumir.
    Luiz Henroqie
    quarta-feira, 1 de abril de 2009 12:58
  • Luiz não sei qual é seu nível com javascript, mas creio que com javascript seja melhor fazer o que você quer.

    http://www.obasicodaweb.com/como-criar-elementos-html-via-javascriptdom

    Abraço

    Estevam
    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    quarta-feira, 1 de abril de 2009 13:36
  • Luiz Estevam,

    Obrigado pela dica. Pelo que vi o problema do javascript é no caso do usuário dar um f5 por exemplo na pagina, os controles criados se perdem.
    Luiz Henroqie
    quarta-feira, 1 de abril de 2009 17:12