DataGridViewComboBoxColumn nom/valeur comment?
Je pensais que c'était simple comme dans Access.
Les besoins de l'utilisateur pour définir la valeur d'une colonne dans une table de données à 1 ou 2.
Je voulais présenter une zone de liste déroulante affichage "UN", "DEUX" et l'option 1 ou 2 derrière la scène, comme je l'ai fait des tas de fois dans l'Accès-Formes.
De l'autre côté, si la table est démontré qu'elle ne doit pas montrer 1 ou 2, mais la chaîne correspondante dans la zone de liste déroulante.
Comment puis-je obtenir cette simple tâche de travailler??
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous vouliez dire DataGridView, qui est pour les Windows Forms, tandis que le contrôle GridView est pour ASP.NET bien que vous avez attaché votre question en tant que telle.
Comment êtes-vous liant les données à la DataGridViewComboBoxColumn? Vous aurez besoin de définir les DisplayMember et ValueMember propriétés sur le DataGridViewComboBoxColumn pendant le réglage du son de la source de données. La MSDN lien vers DisplayMember montre un exemple, mais ce n'est pas tout montrer ce que vous demandez, car il définit à la fois les propriétés de la même chose.
La DisplayMember serait le texte que vous souhaitez que l'utilisateur puisse voir, et le ValueMember serait sous-jacente de la valeur associée.
Pour le bien d'un exemple, disons que vous avez un Choix de classe dans votre projet, qui représente votre sélections et ressemble à ceci:
GetChoices() retourne une liste contenant de votre choix. L'idéal serait de disposer d'une telle méthode dans une couche de service, ou vous pouvez construire votre propre liste d'ailleurs si vous voulais (dans votre formulaire de code derrière). Pour des raisons de simplicité, j'ai regroupé tous ensemble dans la même classe.
Dans votre formulaire, vous permettrait de lier la liste de la DataGridViewComboBoxColumn comme suit:
Vous devriez maintenant voir "Un" et "Deux" dans la zone de liste déroulante. Lorsque vous obtenez la valeur sélectionnée à partir d'elle, il devrait être le sous-jacent de 1 ou 2 valeur.
C'est l'idée derrière l'utilisation de DisplayMember/ValueMember. Cela devrait vous permettre de continuer et vous aider à vous adapter à la source de données que vous utilisez.
C'est la façon dont vous lisez la valeur de la grille lorsque la valeur dans la zone de liste déroulante changements:
sources: ce post