none
Disparar OnClick no Page_Load automaticamente C# RRS feed

  • Pergunta

  • Bom dia galera,

    Como faço para disparar o OnClick de um botão durante o Page_load?

    Já vasculhei o Google, mas só aparecem respostas que não tem nada a ver com o assunto...

    Abraço


    Marcos Paulo - Analista de Sistemas

    sexta-feira, 7 de novembro de 2014 11:11

Todas as Respostas

  • Marcos tenho um exemplo onde chamo a impressão faço assim

    <body onload="self.print();">


    Junior

    sexta-feira, 7 de novembro de 2014 11:13
  • Marcos tenho um exemplo onde chamo a impressão faço assim

    <body onload="self.print();">


    Junior

    Cara, estou utulizando aspx e não tem a tag body nela não...


    Marcos Paulo - Analista de Sistemas

    sexta-feira, 7 de novembro de 2014 11:16
  • então coloque em qualquer parte do aspx assim

    <script type="text/javascript">
      document.getElementById('seu botao').click();
    </script>

    onde seu botão vc executa seu projeto e na página no IE clica com botão direito e escolhe exibir codigo fonte e veja qual o id do seu botão.


    Junior

    sexta-feira, 7 de novembro de 2014 11:42
  • então coloque em qualquer parte do aspx assim

    <script type="text/javascript">
      document.getElementById('seu botao').click();
    </script>

    onde seu botão vc executa seu projeto e na página no IE clica com botão direito e escolhe exibir codigo fonte e veja qual o id do seu botão.


    Junior

    Nada feito Junior,

    o .click não aparece como opção do método... mesmo que eu force e coloque ele, qnd executa a página da erro por causa do  .click

    Alguma outra sugestão?


    Marcos Paulo - Analista de Sistemas

    sexta-feira, 7 de novembro de 2014 13:21
  • Tenta fazer assim no codebehind no load da página

    string script = "";

    script = "<script language=""javascript"">";

    script += "document.getElementById('seu botao').click()";

    script += "</script>";

    ScriptManager.RegisterStartupScript(thisthis.GetType(), "funcao", script, true);


    Junior

    sexta-feira, 7 de novembro de 2014 14:08
  • Tenta fazer assim no codebehind no load da página

    string script = "";

    script = "<script language=""javascript"">";

    script += "document.getElementById('seu botao').click()";

    script += "</script>";

    ScriptManager.RegisterStartupScript(thisthis.GetType(), "funcao", script, true);


    Junior

    Nada feito tb Junio, de começo ele já acusa o erro no ""javascript"" pq ele entende que vc está fechando a String, se tirar as "" e deixar sem nada, quando abro a página, aparece um monte de script na parte inferior da página....

    Marcos Paulo - Analista de Sistemas

    sexta-feira, 7 de novembro de 2014 16:21
  • Coloca assim 'javascript'

    Junior

    sexta-feira, 7 de novembro de 2014 16:26
  • Tenta assim (só complementando a orientação de Junior_luiz)

    Tenta fazer assim no codebehind no load da página
    
    string script = "<script>document.getElementById('seu botao').click();</script>"; Response.Write(script);


    • Editado Mr. GMSOFT sexta-feira, 7 de novembro de 2014 16:35
    sexta-feira, 7 de novembro de 2014 16:35
  • Boa tarde Marcos,

    É só você chamar o evento OnClick normalmente no aspx.

    protected void Page_Load(object sender, EventArgs e)
    {
    
        botao1_Click("Botao", e);
    
    }

    Abs.


    Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx

    sexta-feira, 7 de novembro de 2014 17:10
  • Só complementando, tem que passar "sender" onde tem o nome "Botao"

    botao1_Click(sender, e);

    sexta-feira, 7 de novembro de 2014 17:17
  • Olá Marcos,

     você já parou para pensar que um botão é para o usuario clicar e assim gera um evento que é tratado um código,

    ou um método... Por qual motivo você iria "forçar" o click do botão que por fim iria executar tal codigo, não seria mais simples ter um método com o codigo do botão e chamar esse método no Page_Load e no click do botão ? Não sei se utiliza padrões ou não, mas "forçar" eventos de controles de usuario não é uma boa prática e dificulta na manutenção, lembrando essa apenas minha opinião.

    sexta-feira, 7 de novembro de 2014 17:27
  • Tenta assim (só complementando a orientação de Junior_luiz)

    Tenta fazer assim no codebehind no load da página
    
    string script = "<script>document.getElementById('seu botao').click();</script>"; Response.Write(script);


    Fala Mr. GMSOFT

    tentei este método que vc passou, e surge este erro de execução de script:

    "Erro em tempo de execução do JavaScript: Não é possível obter a propriedade 'click' de referência indefinida ou nula"

    ele nao entende a propriedade .click()

    sabe oq pode ser?


    Marcos Paulo - Analista de Sistemas

    sexta-feira, 7 de novembro de 2014 17:32
  • Vocês esta colocando o id corretamente de seu botão?
    sexta-feira, 7 de novembro de 2014 17:34
  • Vocês esta colocando o id corretamente de seu botão?

    Coloquei sim cara, rodei o sistema, e abri o código fonte, copiei o id do botão e colei na função.

    Se vc for neste método, e após o "." vc mandar uma barra de espaço para ver as sugestões, o click não aparece como opção.


    Marcos Paulo - Analista de Sistemas

    sexta-feira, 7 de novembro de 2014 17:50
  • post ai o teu botão no aspx 

    Junior

    sexta-feira, 7 de novembro de 2014 18:46
  • Na sua page_load coloca assim:

     protected void Page_Load(object sender, EventArgs e)
            {
    
                clica();
            }
    
    //definição da função clica()
    public void clica()
    {
      string teste = "<script>alert('meu teste');</script>";
                Response.Write(teste);
    }
    Para mim aqui funcionou ao carregar , sugiro que crie uma função ao invés de clicar em um botão, mais se quiser utilizar o botão mesmo, como ele como Public ao invés de Protected


    sexta-feira, 7 de novembro de 2014 19:07
  • post ai o teu botão no aspx 

    Junior

    <asp:Button ID="btnLigar" runat="server" Text="Chamar" OnClick="btnLigar_Click">
                        </asp:Button>

    Ta aí o botão no aspx Junior

    Marcos Paulo - Analista de Sistemas

    segunda-feira, 10 de novembro de 2014 11:23
  • Na sua page_load coloca assim:

     protected void Page_Load(object sender, EventArgs e)
            {
    
                clica();
            }
    
    //definição da função clica()
    public void clica()
    {
      string teste = "<script>alert('meu teste');</script>";
                Response.Write(teste);
    }
    Para mim aqui funcionou ao carregar , sugiro que crie uma função ao invés de clicar em um botão, mais se quiser utilizar o botão mesmo, como ele como Public ao invés de Protected


    Fala Mr. GMSOFT,

    Aqui funcionou também, surgiu a mensagem na tela... Criar a função não é o problema, o problema é que está muito demorado para retornar o resultado do select, e não consegui exibir o UpdateProgress no page_load, já vasculhei tudo quanto é site e nada funciona. Aí partir para esta abordagem, já que através do Submit o UpdateProgress aparece. Pensei em resolver assim, com um click automático...


    Marcos Paulo - Analista de Sistemas

    segunda-feira, 10 de novembro de 2014 11:28
  • Então se função funciona , você pode criar uma função com o progressbar 
    segunda-feira, 10 de novembro de 2014 11:35
  • Então se função funciona , você pode criar uma função com o progressbar 

    Já tentei essa abordagem tbm, coloquei uma DIV com o gif e runat setando a propriedade visible para false ou true, mas não adiantou. Quando tento carregar a página direto, sem clicar em nada, não aparece o "Processando". Mas se eu tirar o carregamento do relatório do page_load e colocar no click do botão, a página já carrega no "Processando", quando clico, seto false e a div some, ou seja, a div funciona, mas se botar no loading, não da tempo de aparecer, não sei porque, mesmo já carregando com visible true.

    O UpdateProgress não funcionou nesta abordagem. Criei um novo dentro da página, setei o visible como true e nada aparece.


    Marcos Paulo - Analista de Sistemas

    segunda-feira, 10 de novembro de 2014 13:08
  • Caso tenha conseguido a solução finalize sua Thread marcando a resposta

    GTSA vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel

    domingo, 28 de junho de 2015 14:53