8
votes

Comment définir la valeur sur DataGridViewCombObox colonne?

Je veux savoir comment définir la valeur d'une cellule DataGridViewCombobox. Je lie déjà la DataGridViewCombobox avec DataSource. Mais je veux définir une nouvelle valeur à cela cette source de données.

C'est ce que j'ai jusqu'à présent: xxx

mais il jette une erreur disant: Format Exception: La valeur de la cellule DataGridViewCombObox n'est pas valide .

Comment pourrais-je y parvenir sans erreur?


5 commentaires

@thinzar signifie-t-il réellement le dataGridView? Votre question est étiquetée avec ASP.NET mais le DataGridView est un contrôle WinForms.


Utilisez-vous ASP.NET GridView et Dropdownlist?


Bonjour, quelle erreur obtenez-vous?


Non, j'ai utilisé DataGridView et DataGridViewcombobox dans le formulaire Windows C #.


Exception de format: DataGridViewcombObox La valeur de la cellule n'est pas valide.


5 Réponses :


0
votes

essayer en ajoutant l'événement

private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
 }


3 commentaires

Veuillez répondre à un échantillon complet.


Il suffit d'ajouter l'événement pour la sélection de DataGridView sur les événements comme vous avez dit que vous obtenez une exception au format


Cela avalera l'erreur, à quoi souhaite-t-il une solution. C'est une façon minable de résoudre le problème.



16
votes

La cause première de votre problème est que la valeur "SELECT" n'existe pas dans votre liste de valeurs de la boîte combo. Vous devrez soit ajouter cela à la source de données pour la colonne, soit à la source de données pour la combinaison de la cellule individuelle (à l'aide du contrôle d'édition de cette cellule).

ci-dessous est d'autres explications sur la définition de la valeur de l'élément sélectionné que je vais laisser comme vous le trouverez utile.

Il existe deux façons de base pour définir la valeur d'un DataGridViewCombOxcolumn. Vous utilisez soit la valeur de la base de données ou vous définissez la valeur directement.

On dirait que vous essayez de définir directement, alors je vais expliquer cela d'abord et ensuite ci-dessous, je vais compléter la réponse avec Databinding.

Prenant l'exemple de contreveillé suivant: xxx

Dans cet exemple, j'ai défini le Valeur propriété pour être "ID" qui fait référence à L'identifiant des noms de propriété dans la liste My ComboBox est lié à.

Donc, tout ce que je dois faire est ce qui suit (où je suis sûr que mes index de ligne et de cellules sont corrects - vous devez écrire un code pour vérifier que ): xxx

maintenant, dans mon exemple, cela fonctionne parce que mon Valeur est défini sur ma propriété "ID" qui est un entier, si ID ID était une propriété à cordes, je devrais définir de la valeur comme ceci: xxx

(effectivement juste essayé et il réussit avec une fonte implicite)

et de Bien sûr, je voudrais m'assurer qu'il y avait une valeur de "1" dans ma liste.

Les limites ci-dessus sont l'autorité de certification directe Utilisation de votre erreur - Votre liste qui fournit les valeurs à la liste déroulante ne contient pas la valeur "Sélectionner".

Pour définir la valeur à l'aide de la base de données, vous devez dire à la combinaison de comboBoxColumn. est contraignant dans la DataGridView DataSource.

Le fichier est effectué mon réglage du DataPropertyname du ComboBoxColumn au nom d'une propriété de la classe que la DataGridView est liée.


0 commentaires

5
votes

Il existe un moyen de définir la valeur mais elle n'est pas autorisée si la DataSource est définie.

DataGridViewComboBoxCell cell =(DataGridViewComboBoxCell)gvList.Rows[0].Cells[0];
cell.Items[0] = "Select";


1 commentaires

Peut-être que cela ne fonctionnera pas au lieu de cela, je pense cell.items.add ("SELECT") est correct



3
votes

L'erreur est due au fait que vous avez lié à un datasource à la colonne Combobox et pendant que vous avez affecté, sélectionnez SI SELECT STI Essayer de localiser la même chose dans le DataSource sa liaison aussi. Votre meilleur pari sera d'ajouter de la même manière à la source de données originale que vous attachez à la colonne comboBox


0 commentaires

3
votes

Ceci a fonctionné pour moi xxx

espère que cette aide


1 commentaires

Cela a fonctionné pour moi aussi. Plus on facilite un moyen simple, juste pour définir la nullvalue.