2012-11-14 3 views
1

Voici fonction qui crée des objets javascriptjavascript ajax asp net contrôle

 public IEnumerable<ScriptDescriptor> 
      GetScriptDescriptors() 
    { 
     ScriptControlDescriptor descriptor = new ScriptControlDescriptor("HierarchyPathControl.PathExplorer", this.ClientID); 
     descriptor.AddProperty("some_property", "some_value"); 

     yield return descriptor; 
    } 

Voici une partie du fichier .js

Type.registerNamespace("HierarchyPathControl"); 

     HierarchyPathControl.PathExplorer = function (element) { 
     HierarchyPathControl.PathExplorer.initializeBase(this, [element]); 
     alert("invoked"); 

    } 


    HierarchyPathControl.PathExplorer.prototype = { 
     initialize: function() { 

     HierarchyPathControl.PathExplorer.callBaseMethod(this, 'initialize'); 
     alert("not invoked"); 

}, 
.............................. 

Pourquoi seconde alerte invoque que si je supprime cette ligne:

descriptor.AddProperty("some_property", "some_value"); 

Merci.

+1

Voyez-vous des erreurs de type JavaScript? – jrummell

Répondre

2

Vérifiez la console d'erreur si vous avez une erreur js lors de l'initialisation de la page. Le problème semble être que vous n'avez pas défini la propriété some_property dans votre classe côté client. Assurez-vous que vous avez la définition suivante des méthodes get/set dans votre HierarchyPathControl.PathExplorer classe côté client:

get_some_property = function() { 
    return this._some_property; 
}, 
set_some_property = function(value) { 

    if (this._some_property != value) { 
     this._some_property = value; 
     this.raisePropertyChanged('some_property'); 
    } 
} 

Ici essentiellement some_property doit être le nom de la propriété que vous souhaitez créer.

+0

bien! J'ai lu beaucoup d'articles mais personne n'a dit qu'il DOIT être des getters et des setters. –