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);
}
Answer

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í.

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

entonces

 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.