ASP.NET Lier Répétiteur à l'aide de jQuery?
J'ai un contrôle Repeater que je la lie côté serveur. Il répète une série de divs, et le fait sans problème. J'ai quelques boutons que j'utilise pour trier le répéteur (les plus récents, les mieux classées, au hasard) et que cela fonctionne comme il le devrait.
Je voudrais améliorer mon expérience de l'utilisateur en faisant les boutons de tri des divs en utilisant Ajax/jQuery en quelque sorte, de sorte qu'il n'y a pas de page de publication et l'utilisateur ne perd pas sa place sur la page.
Est-il un moyen d'utiliser jQuery pour l'accès de code côté serveur comme ceci, ou utiliser Ajax pour re-lier un contrôle côté serveur?
Merci... si j'ai besoin de liste plus de détails, s'il vous plaît laissez-moi savoir!
MODIFIER je suis au courant des UpdatePanels, mais je préfère ne pas les utiliser si je n'ai pas à.
OriginalL'auteur Jason | 2009-06-11
Vous devez vous connecter pour publier un commentaire.
Avez-vous envisagé de le déplacement de la Répétition de la fonctionnalité pour le côté client?
Faire de cette façon, des fonctionnalités telles que la pagination et de tri n'est pas très difficile d'ajouter. En fait, vous pouvez vous pencher sur le cadre assez fortement en utilisant ADO.NET services de données que la couche de service.
OriginalL'auteur Dave Ward
C'est relativement facile.
Déplacer votre répéteur à un contrôle personnalisé, disons MyControl. Maintenant répétiteur dans votre page devient uc1:MyControl.
Envelopper MyControl dans un div:
Sur votre page principale, ajouter jQuery gestionnaires à votre sorte de liens. Utilisation charge méthode pour remplacer dynamiquement div contenu:
Génial! Cheers Pavel
OriginalL'auteur Pavel Chuchuva
À l'aide d'un updatePanel ou jquery Ajax publication sont la même chose d'essentiellement. Les deux va vous demander votre code pour aller chercher de la nouvelle requête, puis de contrôler le rendu de lui-même, et ensuite nourrir le HTML au client en tant que partielle page de rendu, puis insérez le contenu à la place de l'ancien contenu dans le même DOM emplacement.
Il est beaucoup plus difficile de faire de JQuery et ASP.NET parler les uns aux autres de cette façon en raison de la nature des contrôles web et de leur cycle de vie qui détermine le moment où ils se rendent. Un updatePanel sait comment appeler tout cela, maintenir le bon état d'affichage et de retourner le résultat à l'emplacement correct.
Dans ce cas, ne pas rendre les choses plus difficile sur vous-même, utilisez l'updatePanel à moins d'avoir une raison bien précise pas.
EDIT: Si vous rencontrez JQuery problèmes avec la mise à jour des panneaux, il est probablement dû au fait que les nouveaux nœuds DOM en cours de création. JQuery a la en direct de l'événement pour gérer cela. Il remarque lorsque de nouveaux éléments du DOM sont créés et les faire correspondre à l'encontre de votre sélecteur même après que le document soit prêt.
la raison pour laquelle je ne peux pas utiliser les updatepanels est parce que je lance certains jquery dans mon répéteurs, et tout cela devient foiré une fois que quelque chose est exécuté à l'intérieur d'un panneau de mise à jour, probablement à cause de la .document().prêt n'est pas un incendie de updatepanels...
J'ai mis à jour ma réponse avec quelques informations sur l'utilisation de JQuery dans ce cas.
OriginalL'auteur Soviut
C'est peut-être un OT, mais vous pouvez envisager de changer la façon dont vous vous liez même le client et le serveur de contrôle, à l'aide de XSLT de transformation au lieu de les classiques des contrôles serveur.
Vous pouvez trouver un exemple ici (désolé, c'est en italien...).
OriginalL'auteur tanathos