2011-10-18 2 views
2

J'ai une page Web qui a un nombre de sections non déterminé (constitué d'une collection de zone de texte, de listes déroulantes, etc.). Un utilisateur clique sur le bouton "Ajouter une section" et cette section doit être ajoutée dynamiquement. Il n'y a pas de limite supérieure au nombre de sections qu'un utilisateur peut ajouter. Il y a alors un bouton Enregistrer à quel moment je dois traverser toutes les sections et persister les données. Ma première pensée est de créer la section en tant que contrôle utilisateur que j'ajoute dynamiquement chaque fois qu'un utilisateur clique sur la "section Ajouter" du côté serveur.Ajout dynamique de plusieurs sections -ASP.NET

Je voudrais éviter d'ajouter dynamiquement des contrôles utilisateur car je trouve que c'est un peu bizarre. J'essaie de comprendre si je peux tirer parti des modèles jquery ou client pour le cas d'utilisation ici.

Pensées ou suggestions?

+1

Nous avons une application similaire à celle-ci que nous traitons par une approche hybride. Les commandes Usercontrols sont utilisées lors du premier chargement de la page et le rendu côté client dynamique est géré par les modèles jQuery. Tout cela est possible car nous n'utilisons pas du tout les publications, mais nous utilisons jQuery bajax sur WebMethods pour parler au serveur. SWo oui, ça marcherait! –

+0

Floyd - Pouvez-vous expliquer l'approche hybride? Voulez-vous dire que la première fois que la page se charge, vous ajoutez les sections existantes en tant que contrôles utilisateur. Pour les ajouts suivants, vous devez récupérer le balisage du contrôle utilisateur et utiliser des modèles jquery pour le rendu de la section? – Nick

Répondre

1

Je ne pense pas qu'il y ait un problème dans l'utilisation de la solution de contrôle utilisateur. Une technique similaire (côté serveur) consisterait à utiliser un contrôle lié aux données tel que Repeater ou ListView - le modèle d'élément définirait la section. L'avantage avec la solution côté serveur est qu'il peut être rapidement construit et peut utiliser l'infrastructure ASP.NET telle que l'état d'affichage (de sorte que vous n'avez pas à vous soucier de maintenir l'état sur les post-retours). Le développeur ASP.NET Forms typique comprendrait facilement la logique. Flip side est cette taille de balisage plus grande, plusieurs transferts de données volumineux lors de l'ajout de sections (que vous utilisiez un post-back complet ou partiel n'aura pas d'importance - l'état d'affichage sera une partie importante des données en cours de transfert).

Je préfèrerai personnellement l'approche du modèle client parce que vous évitez les post-retours et les transferts de données associés. Mais il y a deux problèmes - une logique relativement complexe pour l'affichage/mise à jour des sections - rappelez-vous que votre code est fragmenté à deux endroits - js et le code côté serveur - les développeurs auraient du mal à comprendre b) la confiance de java-script vous devez prévoir un mécanisme de secours si js n'est pas supporté)

Questions connexes