Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

372
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!