La conversion de la Colonne dans DataGridView dans une zone de liste déroulante
J'ai un WinForms application écrite en C# dans laquelle j'ai un DataGridView lié à une source de données renseignée à partir d'une Base de données SQL.
Mon code est comme suit -
string sqlText = "SELECT columns FROM table;";
SqlCommand sqlCom = new SqlCommand(sqlText);
DataTable table = new DataTable();
SqlConnection linkToDB = DatabaseConnection();
sqlCom.Connection = linkToDB;
linkToDB.Open();
using (linkToDB)
using (SqlDataAdapter adapter = new SqlDataAdapter(sqlCom))
{
adapter.Fill(table);
}
dataMyGridView.DataSource = table;
J'ai essayé d'ajouter un DataGridViewComboBox à ce qui suit -
DataGridViewComboBoxColumn colBox = new DataGridViewComboBoxColumn();
colBox.DataSource = GetListOfValues();
dataMyGridView.Columns.Add(colbox);
Maintenant cela fonctionne, mais il ajoute une toute nouvelle colonne avec la zone de liste déroulante, plutôt que de la conversion de l'une des colonnes existantes dans une zone de liste déroulante.
Quelqu'un peut-il expliquer comment je convertir une Colonne existante dans le dataMyGridView dans un ComboBox?
La GetListOfValues fonction retourne simplement une Table de données contenant toutes les valeurs possibles pour la zone de liste déroulante du champ. Il remplit correctement, mais comme je l'ai dit, est une toute nouvelle colonne. Comment puis-je recommander l'ajout zone de liste déroulante de la propriété correspondante dans "table".
- Vous ne savez pas si cela allait fonctionner, mais vous pourriez essayer d'ajouter deux colonnes (TextBox et ComboBox) en mode de conception et lors de l'exécution de votre code de supprimer celui que vous n'avez pas besoin une fois que vous avez lié les données.
- salut exactement ce que tu veux.. comme dans le cas de l'u veux une liste déroulante avec des Hommes et des Femmes de l'option et lorsque u affichage de la table à la grille, la grille u veux combobox pas valeur de texte.. droit ??
Vous devez vous connecter pour publier un commentaire.
J'ai répondu à une semblable question aujourd'hui
Une fois une colonne est créée, vous ne pouvez pas modifier le type. Vous pouvez atteindre votre objectif de deux façons.
1.La création de la colonne, l'ajouter à la grille et la liaison de données. Si vous définissez la
DataPropertyName
propriété de votre colonne puis, quand vos données est tenu que les données de la colonne lié à votre colonne de la grille. Le DataGridView générer des autres colonnes automatiquement. Se lier à une seconde source de données à l'comboboxcolumn lui-même.2.Modifier votre base de données, telles que la liste est fournie par la base de données et de liaison va automatiquement créer comboboxcolumn.
Oui, c'est vrai qu'une fois votre DataGridView est rempli, on ne peut pas changer le type de la colonne.
Mais vous atteindre votre objectif en procédant comme suit.
1.
.
2. Maintenant, vous devez faire seulement une chose, levez le plus événement.
En fait, j'ai simplement créé une copie de "yourColoumn" dans une zone de liste déroulante de la colonne. et dans le backend "yourColoumn" est en cours de mise à jour.
Salut j'ai un tel poste s'il vous plaît vérifier.. c'est parfait avec des exemples de code.
MyTacTics.Blogspot.com