Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

373
Visualizações
Llame a más de una función javascript desde c# OnClick

Aterricé en este fragmento de código para llamar a una función javascript desde C# con éxito, pero parece que solo puedo usarlo una vez por método C#. ¿Cómo puedo llamar a más de una función en un método? Soy un poco nuevo en C#.

 protected void btnAdd_Click(object sender, EventArgs e) { ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "firstEvent(event)", true); ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "secondEvent(event)", true); }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Ok, entonces tu problema es doble.

Recuerde, todo lo que hace ese comando es agregar un script a la página web, lo envía al lado del cliente.

Entonces, hay dos maneras de hacer esto. Simplemente ponga ambas llamadas de función en una, así:

 ScriptManager.RegisterStartupScript(This.Page, Page.GetType, "text", "test1();test2();", True)

Y también puedes hacer esto:

 ScriptManager.RegisterStartupScript(This.Page, Page.GetType, "text", "test1();", True) ScriptManager.RegisterStartupScript(Me.Page, Me.GetType, "text2", "test2();", True)

Tenga en cuenta cómo le damos un nuevo nombre de "clave": si no hace esto, entonces el segundo está sobrescribiendo el siguiente.

Sin embargo, INCLUSO esto NO funcionará:

 ScriptManager.RegisterStartupScript(this.Page, Page.GetType, "text", "test1()", True) ScriptManager.RegisterStartupScript(Me.Page, Me.GetType, "text2", "test2()", True)

tenga en cuenta la falta de ";" después de la función

asi que

 Test1() - only works for one Test1(); - will work if you add more

Entonces, si omite el ";" final, entonces el script se inyecta como

 Test1()Test2()

y tu necesitas

 Test1();Test2();

Por lo tanto, coloque ambas llamadas en la inyección de un script como

 Test1();Test2();

¿O con sus dos llamadas de inyección de script?

Entonces NECESITA un nombre de clave diferente, y TAMBIÉN debe agregar el final ";" para que se vean como llamadas de función js separadas.

about 4 years ago · Juan Pablo Isaza Relatório

0

Tuve un problema similar cuando trabajaba con Blazor Webassembly. La solución que utilicé estaba esperando cada llamada.

Si el administrador de scripts no permite esperarlos directamente, intente:

 protected async void btnAdd_Click(object sender, EventArgs e) { await Task.Run(() => ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "firstEvent(event)", true)); await Task.Run(() => ScriptManager.RegisterStartupScript(this.Page, Page.GetType(), "text", "secondEvent(event)", true)); }

Podría suceder porque el administrador de secuencias de comandos no puede admitir varias llamadas a la vez, por lo que podría estar ignorando la segunda llamada. Al menos, esto es lo que me pasó a mí.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda