2009-08-24 9 views
2

Une question similaire a été posée here in storing information in a given html element.jQuery de base/données ou des attributs personnalisés (données-Driven)

Je suis toujours vert à jQuery, mais je suis à la recherche de la meilleure façon de stocker des informations sur la page. J'ai un répéteur qui contient une image par article. Ces images sont cliquables et peuvent déclencher un événement jQuery donné. Le problème que je suis est, les objets que le répéteur est tenu de contenir des informations spécifiques (telles que "Subtext", "LargerImage", etc) que je voudrais être accessible à partir de la page. Core/Data dans jQuery accomplit cela très bien, mais nous aurions quand même besoin de construire l'instruction jQuery à partir de C#, car toutes les données sont stockées sur le serveur. Pour clarifier un peu, c'est stocker des informations sur la page à partir d'une base de données, ce qui est un peu différent de l'information arbitraire rendue disponible par jQuery. Je ne limite pas cette question à "comment lier un attribut personnalisé à un élément", parce que je suis tombé sur une idée de générer un JS Struct à partir du code C++ derrière pour stocker des informations, mais j'évite tout code générant des scénarios de code (ou essayant de).

Attributs personnalisés de HTML5 (par exemple, « données sous-texte ») sont aussi une possibilité que je peux facilement ajouter ceux de l'événement ItemDataBound:

sampleImageElement.Attributes.Add("data-subtext", "And this what the image is about"); 

Je suis un peu confus sur le soutien du navigateur pour cette attribut spécifique cependant, ou si c'est même la meilleure pratique si tôt dans le jeu. Si les attributs personnalisés sont la solution, c'est un changement facile à réaliser. Si jQuery peut accomplir la même chose, j'aimerais être pointé de cette façon au moins pour ma propre compréhension.

Toutes les pensées sont grandement appréciées.

Répondre

2

Je ne réponds à cette question que pour la gestion des dossiers de stackoverflow, car c'est la solution avec laquelle j'ai évolué pour ce scénario. Un appel AJAX est entièrement justifié pour les ensembles de données plus volumineux et est une direction que je serais certainement aller autrement.

Je suis allé de l'avant avec le champ « Data- » dans la spécification HTML5, fournie par le jQuery meta-data plugin.

Je suis écrit une méthode courte d'extension sur la classe Web.UI.AttributeCollection appelée « AddMetaData », qui accepte un IList ainsi qu'une chaîne "Key" pour faciliter l'attachement à un élément de page donné.

Je ne suis pas encore en train de répondre à cette question, car il pourrait y avoir des commentaires de la communauté sur ma propre direction.

+0

Merci pour le lien vers ce plugin, il semble très utile. J'ai été surpris de voir que c'est 36KB cependant. –

0

Pour clarifier ce qui se passe dans ASP.NET, une fois la page servie au client, les objets auxquels le répéteur est lié sur le serveur sont détruits et sont ensuite recréés à chaque publication de page.

Il semble que vous vouliez obtenir une sorte d'effet d'infobulle lorsque le contenu est récupéré du serveur via AJAX? Il existe de nombreuses options de infobulles différentes disponibles

qui peut être utilisé pour le faire. Vous pouvez ensuite configurer un service Web ou une méthode de page pour extraire les données pertinentes de votre source de données.

Bien sûr, vous pourriez avoir le contenu rendu dans le code HTML envoyé au client lorsque la demande est traitée et simplement cacher ce balisage. Ensuite, écrivez votre propre plugin pour afficher le balisage dans le formulaire dont vous avez besoin.

+0

Une requête AJAX m'avait traversé l'esprit, mais comme la quantité totale de données nécessaires pour être pleinement fonctionnelle est si petite, je choisis de charger tout cela en même temps au chargement de la page. Je suppose que le comportement pourrait être vu comme un tooltip-ish, plus proche d'une fenêtre d'aperçu (c.-à-d., Mettre en évidence un choix et quelques changements d'informations supplémentaires quelque part sur la page). Comment je stocke cet ensemble de données original sur la page est où je suis un peu perdu. –

+0

combien d'articles et combien de données avez-vous pour chaque article? Est-il probable qu'un utilisateur veuille voir les informations supplémentaires pour tous les éléments sur la page ou la moitié des éléments, ou juste un? –

+0

4 articles maximum par page et ~ 5 attributs personnalisés (chaînes <20 caractères) chacun. Ces informations seront mises à jour à chaque clic affectant un seul (un seul est affiché en entier à un moment donné). –

Questions connexes