Pregunta

¿Cómo soluciono problemas con el siguiente error que es lanzado por un método de marco de Microsoft AJAX JavaScript?Es una línea de javascript generada automáticamente de un control de usuario personalizado en una aplicación de formularios web (Sitefinity 5 CMS)

Mensaje de error:

No se puede obtener la propiedad 'FancyBlockDesigner' de referencia indefinida o nula

Aquí está el JavaScript que está lanzando el error:

Sys.Application.add_init(function() {
    $create(SitefinityWebApp.Esd.TheLab.SampleHtmlEditor.FancyBlockDesigner, null, null, {"Editor":"propertyEditor_ctl00_ctl00_ctl00_ctl00_ctl00_Editor","propertyEditor":"propertyEditor"}, $get("propertyEditor_ctl00_ctl00_ctl00"));
});

En lugar de discutir los archivos ASCX y CS que intentan abstraer este detalle, quiero saber qué significa este error.Si entiendo el detalle, la abstracción podría tener más sentido.

¿Fue útil?

Solución

La función

"$ Crear" en ASP.NET AJAX crea una instancia de la clase Javascript. Microsoft tuvo su propia opinión sobre cómo hacer que el objeto JavaScript orientado y con el tiempo que haya demostrado, su enfoque no fue exactamente perfecto.

de todos modos, para tratar de explicar lo que está sucediendo, déjame dar un poco de resumen, oh, cómo funciona. Comenzamos por un control del lado del servidor que implementa iscriptcontrol Interfaz que exige dos miembros: Getscriptdescriptores y Getscripreferences. El segundo es bastante sencillo: le permite registrar las referencias a todos los archivos de JavaScript que controlará usted requerirá. Los Gettipscriptscriptores, por otro lado, vamos a definir todas las instancias de las clases de Javascript que desea usar, así como le permite establecer sus propiedades, inicializarlas, si lo harán.

El código de JavaScript autogenerado que ha pegado dice, básicamente, ha definido en Gettipscriptscriptores que necesitará una instancia de tipo "SitefininitywebApp.esd.thelab.samplehtmleditor.fanclockdesigner" donde desea inicializar la propiedad del editor. Este código irá a buscar un constructor JavaScript que se vea así:

function SitefinityWebApp.Esd.TheLab.SampleHtmlEditor.FancyBlockDesigner(element) {

}

que probablemente también tiene un prototipo definido, algo así como:

SitefinityWebApp.Esd.TheLab.SampleHtmlEditor.FancyBlockDesigner.prototype = {

}

Ahora, desde el error que ha publicado estados: "No se puede obtener la propiedad 'FancyBlockDesigner' de referencia indefinida o nula", la mayoría es probable que uno de los siguientes es el problema:

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