2009-06-01 7 views
1

Ceci est une question purement théorique (du moins jusqu'à ce que je commence à essayer de l'implémenter) mais voilà.Pouvez-vous avoir un champ de données dynamiques qui consiste en une liste de champs?

J'ai écrit un formulaire Web il y a longtemps, qui a une section configurable pour obtenir des informations. Fondamentalement, pour certains clients, il n'y a pas de champs, pour les autres clients il y a jusqu'à 20 champs. Je l'ai fait fonctionner en créant dynamiquement les champs au bon moment dans le cycle de vie de la page et en passant par beaucoup de maux de tête.

2 ans plus tard, j'ai besoin de faire quelques mises à jour assez importantes pour ce formulaire web et il y a quelques nouvelles technologies intéressantes. J'ai travaillé avec ASP.NET Dynamic Data juste un peu et, bien, j'ai un plan demi-fou me vient à l'esprit:

L'objet Ticket a une relation un-à-plusieurs à ExtendedField, nous appellerons cela relation Champs pour la brièveté. En utilisant cela, l'idée serait de créer un FieldTemplate qui générerait dynamiquement la liste des champs et l'afficherait.

Les grandes questions ici serait probablement:

1) Est-ce qu'une seule résolution de modèle de champ à plusieurs contrôles Web sans casser des choses?

2) Les données dynamiques peuvent-elles gérer la mise à jour/l'insertion de plusieurs lignes de cette façon?

3) Il y avait une troisième question que j'avais il y a quelques minutes, mais les collègues m'ont interrompu et j'ai oublié. Alors maintenant, la troisième question est: quelle est la troisième question?

Donc, fondamentalement, cela semble-t-il comme ça pourrait fonctionner ou est-ce que je manque une solution meilleure/plus évidente?

Répondre

0

Avez-vous essayé de créer un FieldTemplate ayant un "ListView" de tous les champs? (Le ListView utiliserait Dynamic Data pour déterminer quel FieldTemplate à afficher pour chaque champ.)

Je ne vois pas pourquoi cela ne serait pas possible. Bien que "prêt à l'emploi", vous devrez peut-être appuyer sur "modifier" sur chaque ligne de la ListView du nouveau FieldTemplate pour éditer les valeurs. Ce serait comme remplacer le lien "Détails de la commande" dans la liste des commandes, avec une liste en ligne des "Détails de la commande".

+0

Hé, j'aurais probablement dû revenir et répondre à ma propre question. La réponse est oui, mais ça devient un peu compliqué ... – CodeRedick

0

1.) Pas très bien. Pouvez-vous imaginer afficher un DateTime, des entiers, des numéros de téléphone, des URL, etc. avec un seul contrôle utilisateur, comme text.ascx? Pourquoi ne pas avoir plusieurs modèles de champs et utiliser UIHint pour spécifier l'utilisation par colonne?

2.) Oui.

3.) Définir fondamentalement? En ce qui concerne les relations un à plusieurs, vous pouvez consulter le modèle de page ListDetails.aspx dans les données dynamiques. J'espère que cela t'aides.

Questions connexes