2009-11-04 3 views
0

Je travaille sur un contrôle personnalisé ASP.net Ajax, j'ai essayé de dériver de ScriptControl et j'ai également modifié mon code pour implémenter l'interface IScriptControl et faire le câblage nessecary dans les méthodes PreRender et Render.

Les cadres recrache un appel à $ créer:

Sys.Application.add_init(function() { 
     $create(MyControl.DynamicFormAjax, 
     {"allowMoveRows":true,"isEditMode":true}, 
      null, null,$get("ctl00_body_dynaForm")); 

Le contrôle est initialisé et je se dessiner au cours de la routine d'initialisation.

Le problème que j'ai est que ma page est alors incapable d'obtenir une référence au composant (je peux obtenir l'élément dom juste très bien). J'ai essayé d'utiliser $ find ("dynaForm") mais il retourne null.

J'ai aussi regardé Sys.Application.getComponents() et le seul composant que je vois est le popup Modal de Ajax Toolkit qui est également sur cette même page.

Merci pour toute aide!

Répondre

0

J'ai réussi à résoudre mon problème. Il est apparu que quand $ create() vérifierait la propriété get_id() de mon composant, il retournerait une chaîne vide. J'ai réalisé que j'avais redéfini mon propre membre _element et une propriété get_element(). J'ai enlevé ceux-ci et cela a commencé à fonctionner.

Lorsque j'ai débogué cela, il semblait que this.element renvoyait un tableau d'éléments, ce qui explique pourquoi la propriété id n'était pas définie. Sorte de chose étrange en définissant un this._element = [élément] dans le constructeur de la fonction, cela a entraîné que this._element devienne un tableau lorsqu'il est appelé par la méthode get_id()

Questions connexes