2009-08-20 12 views
0

Je cherche des conseils sur la meilleure façon de faire cela dans ASP.Net (C#). J'essaye de créer une page qui énumère tout le personnel dans notre bureau, et ai eu un résumé de 4 semaines de valeur de leurs feuilles de temps.asp.net - afficher un dictionnaire avec une liste comme valeur?

J'ai un objet de feuille de temps pour chaque semaine qui peut faire tout cela, et je pense que je peux retourner un Dictionary> pour y avoir les données. Mais quelle est la meilleure façon de relier cela?

Ce que je veux afficher est comme ceci:

StaffMember - WEEK 1 (DATE) - WEEK 2 (DATE) - WEEK 3 (DATE) - WEEK 4 (DATE) 
--------------------------------------------------------------------------- 
BOB BUILDER - Val1, Val2,[] - Val1, Val2,[] - Val1, Val2,[] - Val1, Val2,[] 
OLD MATE - Val1, Val2,[] - Val1, Val2,[] - Val1, Val2,[] - Val1, Val2,[] 

etc etc pour tout le personnel. le [] indique une case à cocher que la personne qui utilise cette page cochera quand elle aura traité quelque chose de sa part concernant la feuille de temps de cette semaine.

Ma pensée est la suivante: - Avoir un listview avec la configuration du modèle d'élément pour avoir des lignes de table et les cellules, et littéraux pour les valeurs - OnItemDataBound obtenir le KeyValuePair puis définissez le membre du personnel littéral au nom du membre du personnel (qui est la clé), puis définir chaque valeur de chaque semaine pour être les valeurs de la feuille de temps correspondante dans la liste

Le problème est que je ne suis pas sûr de savoir comment définir de manière dynamique la date de chaque semaine, je suppose que je pourrais faire un findcontrol sur le modèle de la liste ou quelque chose? Ou mettre la table en dehors de la liste? Tout se sent un peu en désordre, alors j'ai pensé que je pourrais obtenir quelques conseils des gens intelligents à stackoverflow. Y a-t-il un moyen plus facile de faire cela? Est-ce que l'utilisation de dictionnaires compliqués comme celui-ci est mal vu dans .net et existe-t-il une autre façon de le faire?

Répondre

0

Vous pouvez jeter un coup d'œil à la mise en œuvre d'un ObjectDataSource. Puisque vous ne ferez que sélectionner vos données au départ, cela pourrait être relativement facile à mettre en œuvre.

Vous pouvez créer une classe ayant une propriété Date avec laquelle vous pourriez utiliser pour filtrer les appels Select() à votre dictionnaire. Ensuite, vous pourriez manipuler votre ObjectDataSource dans le code pour lui donner une nouvelle valeur de date quand vous en auriez besoin, puis appeler à nouveau Databind() sur votre grille.

Questions connexes