2009-07-22 28 views
0

Ich versuche, eine AJAX-Komponente zu erstellen, die einen CollapsiblePanelExtender enthält. Da das CPE ein untergeordnetes Steuerelement für mein Steuerelement ist, wird die JavaScript $ create-Anweisung des CPEs nach nach der $ create-Anweisung meiner Komponente ausgegeben. Wenn also der JS-Konstruktor für meine Komponente ausgeführt wird und versucht, den CPE zu finden, kann er den CPE nicht finden, da er noch nicht erstellt wurde. Eine Lösung, an die ich gedacht habe, ist das Anhängen von on_load-Handlern in meiner initialize-Methode, wodurch das Abrufen des CPE bis nach dem Laden verzögert wird. Eine andere Lösung besteht darin, ein Startskript zu registrieren, das eine Methode für meine Komponente aufruft, um nach dem CPE zu suchen. Keine dieser Lösungen scheint sauber zu sein. Meine Frage ist, wie geht es dir angenommen, um diese Art von Sache zu arbeiten?ASP.NET AJAX-Komponente mit Kind Komponente

Antwort

0

Versuchen Sie nicht, den CPE bis zu Ihrer Initialisierungsmethode zu finden. Nimm seine ID als String-Eigenschaft und verwende $ find, um die Referenz zu erhalten.

Eine andere Lösung besteht darin, die Funktion 'references' von $ create zu verwenden, die Sie aus einem Skriptdeskriptor mit AddComponentProperty verwenden - übergeben Sie die ClientID des CPE. Das Framework sorgt dafür, dass der eigentliche Verweis auf die Eigenschaft mithilfe einer Zwei-Durchlauf-Technik festgelegt wird, bei der alle zuerst erstellt werden. Anschließend werden diese Referenzen festgelegt, wodurch Probleme bei der Bestellung vermieden werden.

Verwandte Themen