2009-02-24 5 views
0

Je suis en train de concevoir un écran ASP.NET qui configure quels écrans sont pertinents pour un type particulier d'enregistrement. Par exemple, un dossier de voiture aura accès aux pages Ford et Ferrari. J'affiche une liste sur la gauche avec tous les éléments disponibles, et une liste sur la droite avec les éléments actuellement sélectionnés. Deux icônes fléchées vous permettent de déplacer des éléments de la liste gauche vers la liste droite et inversement. J'essaie de trouver un bon moyen de stocker l'accès sélectionné. Le plus simple serait de supprimer tous les éléments actuellement sélectionnés et de réinsérer les éléments dans la liste déroulante Éléments sélectionnés. Mais les modifications doivent être vérifiées plus précisément, de sorte que les insertions individuelles et les suppressions sont nécessaires. Devrais-je stocker les éléments originaux dans un champ caché et ensuite essayer de comparer les éléments finaux sélectionnés avec l'original? Le travail doit-il être effectué dans la couche Présentation, dans un objet ou dans une procédure stockée?ASP.NET Listboxes pour mettre à jour les données

Merci pour toute orientation, Dean

Répondre

1

Je ne le faire sur la couche de présentation, envoyer la nouvelle liste à votre couche d'affaires. Dans là récupérer la liste actuelle et faire une comparaison avec la nouvelle liste. Le faire vos insère et supprime basé sur cela.

+0

Merci, donc je devine que je passe une collection dans la couche de gestion, puis comparez cela avec les valeurs réelles. Y a-t-il un moyen facile de faire ceci? Boucle autour de chaque liste et compare avec l'autre pour faire une liste des insertions et des suppressions? –

+0

Si vous utilisez LINQ (juste LINQ to objects est correct), vous pouvez utiliser la méthode intersect pour identifier ce qui est nouveau. Tout ce qui n'est pas dans cette liste est ensuite supprimé. –

+0

Malheureusement, nous sommes toujours sur .NET 2.0 –

0

Si vous souhaitez que la sélection soit persistante, vous devez les stocker dans DataLayer.

couche d'affaires:voiture Entité et Cars Collection

A côté serveur, vous pouvez créer une collection d'éléments qui contient tous (sélectionnés/non sélectionnés) articles.

Un élément d'entité de voiture nécessite son nom, son identifiant et des informations sélectionnées. stocker cette collection en session lorsque l'utilisateur entrer dans la page et le vérifier quand vous le souhaitez.

Voici un élément de voiture:

CarItem

  • Id
  • Nom
  • IsSelected
Questions connexes