2010-06-03 8 views
0

J'ai une application simple, je suis déconner avec sa configuration de base maître/détails.Modifiable GridView Distinct Drop Down LIsts

Le panneau de détails est en fait un panneau d'onglets et sur l'un des onglets il a un GridView. Dans cette vue de grille, il affiche le "courant" dans les informations de base de données avec toutes les cellules en lecture seule.

alt text http://lh4.ggpht.com/_JU1W2P96pD4/TAeonNNYXgI/AAAAAAAAAq0/Y_-Kse7VObE/ExampleA.jpg

J'ai alors un bouton Ajouter qui insère une ligne dans la GriView et permet à l'utilisateur d'entrer des informations. Le premier élément de mon GridView est un DropDownList, qui est peuplé à partir d'un ObjectDataSource. Cette liste déroulante est fondamentalement mon index unique et il ne peut y avoir qu'une seule valeur sélectionnée par GridView.

alt text http://lh3.ggpht.com/_JU1W2P96pD4/TAeonIF3DdI/AAAAAAAAAq4/JhfOTsHgsf8/ExampleWithDropDown.png

Quelle est la meilleure façon de supprimer les valeurs de la liste qui sont déjà dans le GridView? Ai-je juste besoin de supprimer la source de données et d'ajouter une méthode OnDataBinding qui itère dans la vue grille et génère une liste de valeurs valide?

Je ne peux pas utiliser une méthode de service car si l'utilisateur ajoute deux lignes, il aurait la possibilité d'insérer des types de description de doublons.

Je veux juste m'assurer qu'il n'y a pas de meilleure façon de procéder.

Répondre

2

Conserver la source de données d'objet, que je suppose être un objet IEnumerable, dans une variable de session. Lorsque quelqu'un sélectionne une certaine valeur, supprimez cette valeur de la liste dans la variable de session. Chaque fois qu'ils activent le formulaire où la liste déroulante est affichée, reliez simplement le contrôle à la liste dans la variable de session. Ce sera plus facile que de boucler la grille à chaque fois que l'utilisateur ajoute une entrée.

Questions connexes