2010-04-01 3 views
0

Nous avons utilisé IScriptControl pour lier des objets javascript à nos UserControls et ServerControls, et cela a bien fonctionné.Quel est l'équivalent d'IScriptControl pour Web.UI.Page?

Le problème est que ASP.NET semble ne fournir aucune méthode pour lier un objet javascript à une page. Jusqu'à présent, nous avons mis des fonctions simples dans l'espace de noms global, mais je développe une allergie sérieuse à cette pratique. Il serait assez facile d'intégrer nos fonctions dans une classe javascript, et d'inclure le fichier javascript sur la page, mais comment instancier l'objet, comment le référencer à partir d'événements de rappel, et comment transmettre des données à Du code-behind, je n'ai pas compris. Ou plutôt, les méthodes que nous avons utilisées jusqu'à maintenant (champs cachés, chaînes javascript émises, etc.), me dérangent vraiment.

Quelqu'un a de meilleures idées?

Répondre

0

Il n'existe aucune association entre le fichier JS et la page, sauf si vous le créez. Avec les contrôles de script, la pratique courante de stocker l'état est des champs cachés (l'ACT utilise cette approche). Les seules autres façons de communiquer avec le serveur sont via un appel de service Web, formulaire de données publiées, ou en invoquant un __doPostBack (mais ce n'est pas AJAX).

Vous pouvez créer une architecture de base pour lier les deux ensemble. Avec les contrôles de script, le serveur affiche une instruction $ create pour transmettre les propriétés et les gestionnaires d'événements du serveur au client; les données renvoyées au serveur sont stockées dans des variables cachées et traitées sur le client (avec la plupart des bibliothèques de scripts), ainsi les contrôles de script et ACT cachent beaucoup de ceci pour vous, et vous devriez construire une partie de ceci si vous vouliez automatiser cela. Il peut être utile d'étudier l'interaction client-serveur pour vous donner des idées sur ce qu'il faut faire si vous voulez personnaliser cela. Drôle, je pensais à la même chose pour mon projet Nucleo (une de mes bibliothèques tierces) sur le codeplex, mais je n'y suis pas encore parvenu.

+0

Il n'y a aucune association entre le javascript et la page sauf si quelqu'un le construit. Avec ScriptControl, MS a construit une structure pour fournir la communication pour UserControls et ServerControls. Cela me semble étrange qu'ils n'aient pas non plus de page. –