que j'ai deux commandes de script et un contrôle a l'autre comme un contrôle enfant:ASP.Net ScriptControl - Appel d'une méthode d'un autre
ParentControl : ScriptControl
{
ChildControl childControl;
}
Le script pour le contrôle des enfants:
ChildControl = function(element)
{
ChildControl.initializeBase(this, [element]);
}
ChildControl.prototype =
{
callMethod: function()
{
return 'hi';
},
initialize: function()
{
ChildControl.callBaseMethod(this, 'initialize');
},
dispose: function()
{
ChildControl.callBaseMethod(this, 'dispose');
}
}
Et sur le côté de script que je veux appeler une méthode sur le contrôle des enfants:
ParentControl.prototype =
{
initialize: function()
{
this._childControl = $get(this._childControlID);
this._childControl.CallMethod();
ParentControl.callBaseMethod(this, 'initialize');
},
dispose: function()
{
ParentControl.callBaseMethod(this, 'dispose');
}
}
le problème est, à chaque fois que je tente ce qui est dit cette méthode n'est pas trouvée ou prise en charge. Toutes les méthodes de ChildControl ne devraient-elles pas être accessibles par le ParentControl?
Existe-t-il un moyen de rendre la méthode publique afin que le contrôle ParentControl puisse la voir?
Mise à jour Serait-il possible de "taper" le this._childControl? Voici la raison pour laquelle je demande ... Lorsque j'utilise Watch, le système connaît la classe ChildControl, et je peux appeler des méthodes hors de la classe elle-même, mais je ne peux pas appeler les mêmes méthodes. Objet _childControl. On pourrait penser que si la classe design (?) En mémoire reconnaît la méthode existante, et que l'objet instancié de cette classe le serait aussi.
Le problème suivant est de supprimer le gestionnaire car il semble que l'enfant est supprimé avant la partie, et donc (je suppose) l'objet de contrôle de l'enfant n'exsite plus. –