Je cherche à faire un contrôle web où je peux enregistrer des scripts de démarrage client en ligne avec mon aspx parce que je déteste m'enregistrer dans le codebehind!Register Startup Script Control
Un exemple de ce que j'ai jusqu'à présent:
< Ben: StartupScript runat = "server" >
forme var = document.getElementById ("<% = form1.ClientID%>");
</Ben: StartupScript >
Actuellement, je suis redéfinissant la méthode OnPreRender du contrôle, ce qui rend le contenu du contrôle à une chaîne, puis enregistrer manuellement cette chaîne comme un script de démarrage à l'aide ClientScript.RegisterStartupScript sur la page. Je remplace également la méthode Render afin de ne pas rendre le contrôle. Je devrais également noter que j'ai l'attribut ParseChildren défini sur false et l'attribut PersistChildren défini sur true.
Tout semble bien fonctionner, mais mon contrôle permet d'autres contrôles Web à l'intérieur (comme Button). En plus d'être non intuitif, cela peut entraîner des erreurs d'exécution. J'aimerais pouvoir effacer les contrôles mais cela est impossible compte tenu du bloc de code <% ...%>. Donc, est-il possible d'empêcher les développeurs d'intégrer des contrôles enfants tout en autorisant les blocs de code?
En outre, cette idée est-elle bonne ou est-elle fondamentalement erronée? lol.
Merci un bouquet,
Ben