Possible de charger ASCX avec la fonction jQuery.load ()?

Est-il possible sans encapsuler ces contrôles dans des fichiers aspx? La balise Register me fait penser que ce n’est pas le cas.

Vous ne pouvez pas appeler directement une page ascx, ils ne peuvent pas servir de code HTML sans avoir été ajoutés à aspx ou rendus de manière dynamic en réponse à une page / un gestionnaire.

Une solution possible serait d’avoir une page de stub aspx générique agissant en tant qu’hôte de l’ascx de la manière habituelle avec les formulaires Web et de rappeler cette page à l’aide de la méthode $ .ajax () de JQuery, avec quelques arguments pour indiquer le contrôle ascx vouloir charger.

Ensuite, sur votre page de stub / hôte, remplacez la méthode de rendu et rendez le contrôle directement dans le stream de sortie à l’aide de response.output.write. Le gestionnaire de rappel sur le client intercepte la sortie et peut ensuite être inséré dans le DOM de manière normale ou à l’aide de la version de $ .load () permettant de spécifier un élément DOM.

J’espère que cela t’aides.

C’est un moyen de charger des contrôles ASCX via jQuery, en utilisant un service ASMX qui crée une instance de page pour restituer le contrôle utilisateur .

Depuis que je commence à utiliser jQuery / Ajax de plus en plus, je constate que j’utilise de moins en moins les contrôles serveur.

Les éléments que je mettais dans les contrôles ne sont plus que des pages aspx individuelles qui sont chargées dans des panneaux.

Si vous avez d’anciens fichiers ASCX, il ne devrait pas être trop difficile de les convertir en ASPX

Non.

Cela dit, vous pouvez placer votre ascx dans UpdatePanel et définir le contenu du panneau de manière visible / invisible à l’aide des mécanismes de publication Asp.Net standard.

Vous pouvez également écrire un IHttpHandler distinct qui génère le code HTML que votre code Javascript ajoute à la page à l’aide de DOM. Cette partie de la page ne serait toutefois pas accessible dans PostBack.

Non, ASCX sont des contrôles utilisateur, qui existent sur ASPX. Vous devrez en faire une page ou la convertir en gestionnaire.