none
Eventos OnClick de botoes em TabContainer RRS feed

  • Pergunta

  • Bom Dia

    Caiu nas minhas mãos um ajuste em um sistema feito a anos atrás e estou com dificuldade em fazer uma manutenção.

    Numa parte do sistema, abre um Pop-Up para o usuário, este contem um TabContainer do AjaxControlToolKit. Cada aba possui botoes para limpar, fechar e gravar. Não sei se este sistema funcionou algum dia, mas os OnClick desses botões não estão sendo chamandos! Não dão o PostBack!

    Como poderia concertar isso?

    Agradeço desde já!

    sexta-feira, 30 de novembro de 2012 11:36

Respostas

  • esta foi a solução:

      $(document).ready(function () 
            {
                document.getElementById("btnLimpar").onclick = null;
                document.getElementById("btnEnviar").onclick = null;
                document.getElementById("btnBolAltera").onclick = null;
    
    ...
    }

    terça-feira, 4 de dezembro de 2012 11:46

Todas as Respostas

  • Fabricio esse evento é no codebehind ou é javascript, pq o tabcontainer muda o nome dos componentes dentro dele e se for script vc terá que mudar o nome para executar. Se for no codebehind posta ai o codigo.

    Junior

    sexta-feira, 30 de novembro de 2012 11:43
  • Testei em botao criado dinamicamente e direto no aspx:

    <asp:Button ID="btnx" runat="server" Text="teste" 
                                        onclick="btnx_Click" />

    e

     Button BotaoLimpar = new Button();
                BotaoLimpar.ID = "btnLimpar";
                BotaoLimpar.Text = "Limpar";
                BotaoLimpar.Click += new EventHandler(BotaoLimpar_Click);
    //parece ignorar esta linha
                BotaoLimpar.ClientIDMode = System.Web.UI.ClientIDMode.Static;
             
    
    //adicionando em uma DIV

    e o metodo OnCLick normal:

      void BotaoLimpar_Click(object sender, EventArgs e)
            {
                
            }
    //*****
    
    protected void Button10_Click(object sender, EventArgs e)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('teste');", true);
            }

    Veja como fica o botao Inspecionando o Elemento (Firebug):

    <input type="submit" name="Button10" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('Button10', '', true, '', '', false, false))" id="Button10">

    Obrigado por enquanto Junior

    sexta-feira, 30 de novembro de 2012 11:56
  • onde esta o evento do botao btnx

    Junior

    sexta-feira, 30 de novembro de 2012 12:22
  • protected void btnx_Click(object sender, EventArgs e)
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('teste');", true);
            }
    
    // o mesmo do anterior

    sexta-feira, 30 de novembro de 2012 13:03
  • Fabricio vc esta chamando um script, pode ser o script, como te falei o ajax modifica o nome dos componentes dentro dele, faz o seguinte executa teu projeto e nessa página no IE clica com botão direito e escolhe exibir código fonte, vai abrir uma janela ai vc procura os componentes dentro do container do ajax, e pegue o (id) dos componentes ai é so alterar o script colocando esses id.

    o ID do componente deve ficar mais ou menos assim

    ctl00_MainContent_TabContainer1_Tb_01_Txt_Matricula


    Junior

    sexta-feira, 30 de novembro de 2012 13:12
  • Fabricio vc esta chamando um script, pode ser o script, como te falei o ajax modifica o nome dos componentes dentro dele, faz o seguinte executa teu projeto e nessa página no IE clica com botão direito e escolhe exibir código fonte, vai abrir uma janela ai vc procura os componentes dentro do container do ajax, e pegue o (id) dos componentes ai é so alterar o script colocando esses id.

    o ID do componente deve ficar mais ou menos assim

    ctl00_MainContent_TabContainer1_Tb_01_Txt_Matricula


    Junior

    eu não executo script no click do botão, é um evento do C# mesmo. como falei anteriormente, ele ta substituindo o OnClick por: 

    onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('Button10', '', true, '', '', false, false))"

    E isto que eu gostaria de entender e tratar.

    Obrigado mais uma vez Junior

    sexta-feira, 30 de novembro de 2012 13:17
  • Junior

    o evento OnClick do Botao deveria ser assim (no browser):

    <input type="submit" name="Button2" value="Salvar" id="Button2">//isso chama um evento do C#.... arrastar o botao pro form e dar 2 cliques nele para criar o metodo -.-

    e esta ficando assim:

    <input type="submit" name="Button10" value="Button" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;Button10&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="Button10">

    Isso que gostaria de tratar!

    vlw

    segunda-feira, 3 de dezembro de 2012 11:27
  • esta foi a solução:

      $(document).ready(function () 
            {
                document.getElementById("btnLimpar").onclick = null;
                document.getElementById("btnEnviar").onclick = null;
                document.getElementById("btnBolAltera").onclick = null;
    
    ...
    }

    terça-feira, 4 de dezembro de 2012 11:46