2010-09-14 4 views
2

J'ai des mini modules (pensez à iGoogle) qui sont actuellement chargés via la méthode LoadUserControl appelant la page et en chargeant ce contrôle dans PlaceHolders. J'ai besoin de changer cette implémentation pour charger les contrôles via une requête jQuery AJAX. Le problème réside actuellement dans le fait que lorsque j'effectue un AJAX Get, je peux charger les modules en les ajoutant au contenu mais aucune des fonctionnalités qui fonctionneraient autrement sur un contrôle chargé normal n'est présente. Par exemple, lorsque je sélectionne une option différente sur un DDL, la page est actualisée et rien ne change. Je suspecte parce que c'est parce que les méthodes ne sont pas liées quand j'effectue une charge par AJAX. De plus, lorsque j'utilise cette méthode, mon contenu flash n'est pas chargé. Est-ce que je fais quelque chose de mal ici, ou y a-t-il une meilleure solution?Charger les contrôles utilisateur ASP.Net via jQuery AJAX

$.ajax({ 
    url: '/modules/UserModules.aspx?CID=12345', 
    type: "GET", 
    dataType: "html", 
    success: function(data) { 
     $('#column1').append($(data).find('div#lm li')); 
     $('#column2').append($(data).find('div#cm li')); 
     $('#column3').append($(data).find('div#rm li')); 
     alert('Load was performed.'); 
    } 

}); 

Répondre

2

Lorsque vous publiez sur le serveur, le serveur ne connaît pas votre contrôle utilisateur, car il a été ajouté à la page dynamique. En fait, vous rendez le HTML HTML, puis ajoutez une partie du HTML rendu à votre page.

Je recommanderais d'éviter toute publication sur le serveur et d'utiliser jQuery pour récupérer des données en utilisant un Page Method ou web method lorsque vous effectuez une sélection en utilisant votre DDL.

0

Je ne suis pas sûr que je vois l'utilité d'utiliser un UC pour cela. Il y a plusieurs façons de faire ce genre de chose. Comme l'a dit Jamie, vous pouvez avoir une page .aspx simple qui utilise des méthodes web. Une page asmx. Vous pouvez également ne pas utiliser de méthodes web et faire comme vous le feriez avec php ou ASP classique en écrivant vos résultats de chaîne directement et en les traitant (ne devrait pas être votre premier choix si!). Mais la chose la plus importante que vous puissiez en tirer est le débogage. Mettez un point d'arrêt dans votre code UC pour suivre le côté serveur. Utilisez Firebug: ouvrez-le, choisissez console et regardez pour voir si vos requêtes GET font réellement ce dont elles ont besoin. Ces jours-ci, vous avez rarement besoin d'une alerte pour déboguer.

Questions connexes