.net ajax debugging startupscript clientscriptmanager

.net-¿Cómo se registra un script de inicio?



ajax debugging (3)

Ponlo en la parte del encabezado de la página

Tengo una experiencia limitada con .net. Mi aplicación arroja un error this.dateTimeFormat no está definido, lo que rastreé hasta un conocido error ajax. La solución alternativa publicada decía:

"Registre lo siguiente como un script de inicio:"

Sys.CultureInfo.prototype._getAbbrMonthIndex = function(value) { if (!this._upperAbbrMonths) { this._upperAbbrMonths = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames); } return Array.indexOf(this._upperAbbrMonths, this._toUpper(value)); };

Entonces, ¿cómo hago esto? ¿Agrego el script al final de mi archivo aspx?


Utilizaría ClientScriptManager.RegisterStartupScript ()

string str = @"Sys.CultureInfo.prototype._getAbbrMonthIndex = function(value) { if (!this._upperAbbrMonths) { this._upperAbbrMonths = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames); } return Array.indexOf(this._upperAbbrMonths, this._toUpper(value)); };"; if(!ClientScriptManager.IsStartupScriptRegistered("MyScript"){ ClientScriptManager.RegisterStartupScript(this.GetType(), "MyScript", str, true) }


Tuve el mismo problema en mi aplicación web (this.datetimeformat no está definido), de hecho se debe a un error en Microsoft Ajax y esta función anula el error que causa la función en MS Ajax.

Pero hay algunos problemas con el código anterior. Aquí está la versión correcta.

string str = @"Sys.CultureInfo.prototype._getAbbrMonthIndex = function(value) { if (!this._upperAbbrMonths) { this._upperAbbrMonths = this._toUpperArray(this.dateTimeFormat.AbbreviatedMonthNames); } return Array.indexOf(this._upperAbbrMonths, this._toUpper(value)); };"; ClientScriptManager cs = Page.ClientScript; if(!cs.IsStartupScriptRegistered("MyScript")) { cs.RegisterStartupScript(this.GetType(), "MyScript", str, true); }

Coloque el evento Page_Load de su página web en el archivo codebehind. Si está utilizando páginas maestras, colóquela en la página de su hijo y no en la página maestra, porque el código en las páginas secundarias se ejecutará antes de la página maestra y, si está en el código detrás de la página maestra, seguirá recibiendo el error si está usando AJAX en las páginas secundarias.