¿La forma más sencilla de actualizar una variable de matriz de JavaScript del lado del cliente durante una devolución de datos de ASP.NET AJAX en un UpdatePanel?

StackOverflow https://stackoverflow.com/questions/95005

  •  01-07-2019
  •  | 
  •  

Pregunta

Si quiero inyectar una variable de matriz de alcance global en el javascript del lado del cliente de una página durante una devolución de datos de página completa, puedo usar:

this.Page.ClientScript.RegisterArrayDeclaration("WorkCalendar", "\"" + date.ToShortDateString() + "\"");

para declarar y completar una matriz javascript del lado del cliente en la página.Bonito y sencillo.

Pero quiero hacer lo mismo desde una devolución de datos asíncrona desde un UpdatePanel.

Lo más cercano que puedo imaginar hasta ahora es crear un archivo .js que solo contenga la declaración var, actualizar el archivo durante la devolución de datos asíncrona y luego usar un ScriptManagerProxy.Scripts.Add para agregar el archivo .js al alcance global de la página.

¿Hay algo más sencillo?¿Riz lo está haciendo mal?

¿Fue útil?

Solución

También puedes actualizar una etiqueta oculta dentro del panel de actualización que te permite escribir cualquier javascript que desees.Sin embargo, sugeriría utilizar servicios web o incluso métodos de página para obtener los datos que necesita en lugar de utilizar paneles de actualización.

Ejemplo:miEtiqueta.Texto = "...";...ponga su lógica en esto o puede agregar [WebMethod] a cualquier método de página estática pública y devolver datos directamente.

Otros consejos

Utilice el método estático System.Web.UI.ScriptManager.AddStartupScript()

El script se ejecutará en todas las devoluciones de datos completas y parciales.

Sam tiene razón.ScriptManager.RegisterStartupScript es el nombre correcto de la función.Se ejecutará en todas las actualizaciones de página completas y parciales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top