none
ajuda com evento >>> btn.Click += new ImageClickEventHandler(this.btnPos_Click); RRS feed

  • Pergunta

  • olá Galera, não sei como resolver um problema...

    em um foreach, estou criando uma lista de ImageButton, no código fonte, ex:  ImageButton pos = new ImageButton();

    cada ImageButton terá que acessar um único método, ex: public void btnPos_Click(object sender, ImageClickEventArgs e)

    não consigo acessar o método se não criar o código no asp.net, já tentei isso aqui mesmo assim não funciona

    pos = new ImageButton();

    pos.Click += new ImageClickEventHandler(this.btnPos_Click);

    public void btnPos_Click(object sender, ImageClickEventArgs e)
            {
     ImageButton dynamicIButton = (sender as ImageButton);

    }

    Minha pergunta é:

    Como faço para executar um método no controle que criei no código fonte C#? 

    este controle é um ImageButton

    quarta-feira, 28 de agosto de 2013 16:02

Respostas

  • Ana Lúcia,

    Tente fazer isso no evento PreInit se não estiver usando master page:

    protected void Page_PreInit(object sender, EventArgs e) {

    }

    senão faça no evento:

    protected void Page_Init(object sender, EventArgs e) {

    }


    Ricardo Minoru Makiyama




    quinta-feira, 29 de agosto de 2013 02:55
  • Ana,

    quando vc cria em tempo de execução vc precisa deixar esse seu componente na viewstate, senão a cada postback vc irá perder as ref


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    quinta-feira, 29 de agosto de 2013 18:23
    Moderador

Todas as Respostas

  • Algo assim?

    pos = new ImageButton();
    
    //Após o método criado
    
    pos.Click();

    quarta-feira, 28 de agosto de 2013 16:23
  • eu quero isso aqui:

            protected void Page_Load(object sender, EventArgs e)
            {
                ImageButton imgBtn = new ImageButton();
                imgBtn.ID = "imgBtnTeste";
                imgBtn.ImageUrl = "";
                imgBtn.Click += new ImageClickEventHandler(img_Click);
                serverDiv.Controls.Add(imgBtn);
            }

            protected void img_Click(object sender, ImageClickEventArgs e)
            {
                ImageButton dynamicIButton = (sender as ImageButton);
            }

    com uma diferença, o ImageButton não vai ser criado no Page_Load, vai ser criado em outro metodo

    quarta-feira, 28 de agosto de 2013 16:35
  • descobri o erro, meu método esta dentro do if (!IsPostBack)

     protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                teste();
            }

            public void teste()
            {
                ImageButton imgBtn = new ImageButton();
                imgBtn.ID = "imgBtnTeste";
                imgBtn.ImageUrl = "";
                imgBtn.Click += new ImageClickEventHandler(img_Click);
                serverDiv.Controls.Add(imgBtn);
            }

            protected void img_Click(object sender, ImageClickEventArgs e)
            {
                ImageButton dynamicIButton = (sender as ImageButton);
            }

    não posso deixar o metodo sem IsPostBack

    não tenho ideia de como fazer, o que devo fazer?

    quarta-feira, 28 de agosto de 2013 17:00
  • Ana Lúcia,

    Tente fazer isso no evento PreInit se não estiver usando master page:

    protected void Page_PreInit(object sender, EventArgs e) {

    }

    senão faça no evento:

    protected void Page_Init(object sender, EventArgs e) {

    }


    Ricardo Minoru Makiyama




    quinta-feira, 29 de agosto de 2013 02:55
  • Ana,

    quando vc cria em tempo de execução vc precisa deixar esse seu componente na viewstate, senão a cada postback vc irá perder as ref


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    quinta-feira, 29 de agosto de 2013 18:23
    Moderador