Click here to Skip to main content
11,436,156 members (64,821 online)
Click here to Skip to main content

A ComboBox in a DataGrid

, 25 Dec 2002
Rate this:
Please Sign up or sign in to vote.
Descendant from DataGridColumnStyle.

Introduction

This is a descendant from DataGridColumnStyle and is used to have a ComboBox in a DataGrid column. It is based on an article by Sudhakar Jalli but I found the code not working. I repaired the code and cleaned it up a little.

The DataGridComboBoxColumn class makes it possible to have a ComboBox instead of the default text or checkbox. It took me quite a while to figure it out (even with the help of the article by Sudhakar Jalli). Using it is straightforward.

Using the code

First create a new DataGridTableStyle and make sure the mapping is set to the name of the table in the DataSource where the columns will belong to.

DataGridTableStyle ts=new DataGridTableStyle();
ts.MappingName="Columns";

Then, create the DataTable with the lookup values. This could of course come from the database (And it should BTW)

DataTable AccessDataTypes = new DataTable();
AccessDataTypes.Columns.Add(new DataColumn("Number", typeof(int)));
AccessDataTypes.Columns.Add(new DataColumn("Name", typeof(string)));
AccessDataTypes.Rows.Add(new object[] {3, "Numeric"});
AccessDataTypes.Rows.Add(new object[] {130, "Text"});

Create the DataGridComboBoxColumn and add it to the GridColumnStyles. The first argument (Type) is used for the column caption and the mapping. (Could be changed after creating). The second argument (AccessDataTypes) is the DataTable to use for translation. Name and Number are the column names to use from the table and theGrid is the DataGrid where this column will belong to. Be sure to provide the NullText ; if you don't it will throw an exception if you try to add a row to the DataGrid.

DataGridComboBoxColumn c1=new DataGridComboBoxColumn("Type", 
         AccessDataTypes, "Name", "Number", theGrid);
c1.NullText="3";
ts.GridColumnStyles.Add(c1);

Finally add the newly created TableStyle to the TableStyles array of the DataGrid.

theGrid.TableStyles.Add(ts);

Enjoy the improved DataGrid and be sure to send in your own DataGrid columns!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Jan Wiggers
Web Developer
Netherlands Netherlands
No Biography provided

Comments and Discussions

 
Generalcombobox in datagridview Pin
arunasingh123413-May-09 3:02
memberarunasingh123413-May-09 3:02 
GeneralCombobox in Datagrid [modified] Pin
indian14316-Jan-09 7:54
memberindian14316-Jan-09 7:54 
GeneralThank you Pin
scheidel2114-Apr-08 0:29
memberscheidel2114-Apr-08 0:29 
GeneralTK Pin
zhouyu53722-Nov-06 23:53
memberzhouyu53722-Nov-06 23:53 
QuestionHow to add SelectedIndexChanged [modified] Pin
pandia2815-Aug-06 5:34
memberpandia2815-Aug-06 5:34 
Question.NET 2.0 Pin
steffen.glaser10-Aug-06 6:45
membersteffen.glaser10-Aug-06 6:45 
QuestionErrorProvider for DataGrid Pin
gn18-May-06 5:38
membergn18-May-06 5:38 
GeneralRegarding DataGrid Pin
dayakar_dn2-May-06 23:55
memberdayakar_dn2-May-06 23:55 
GeneralAlternatingBackColor Pin
Kai Michael Wadsack29-Dec-05 9:16
memberKai Michael Wadsack29-Dec-05 9:16 
GeneralThe comboBox column not showing on DG Pin
AlphaD11-Oct-05 9:54
memberAlphaD11-Oct-05 9:54 
Generalitem selection in combobox control Pin
nehap10-Oct-05 21:11
sussnehap10-Oct-05 21:11 
GeneralThanks Pin
PatrickGawley29-Sep-05 4:22
memberPatrickGawley29-Sep-05 4:22 
QuestionCombobox in first column doesn't work Pin
mcshadow8830-Aug-05 3:58
membermcshadow8830-Aug-05 3:58 
GeneralGreat Pin
cute bird24-Aug-05 9:46
membercute bird24-Aug-05 9:46 
GeneralError when trying to use Pin
shof10-Apr-05 18:21
membershof10-Apr-05 18:21 
GeneralRe: Error when trying to use Pin
gingertez21-Jun-06 5:08
membergingertez21-Jun-06 5:08 
GeneralSelection "Bug" in ComboBox component Pin
J.J. Hendriksen1-Mar-05 8:31
sussJ.J. Hendriksen1-Mar-05 8:31 
QuestionHow can I change A ComboBox in a DataGrid ... Pin
aoyee25-Feb-05 3:59
memberaoyee25-Feb-05 3:59 
GeneralNew row in DataGrid Pin
msenkerik2-Dec-04 1:20
membermsenkerik2-Dec-04 1:20 
GeneralI can't use it Pin
g0deus5-Oct-04 7:12
sussg0deus5-Oct-04 7:12 
GeneralThe designer must create an instance of type 'System.Windows.Forms.DataGridColumnStyle' but it cannot because the type is declared as abstract. Pin
Chris Jonas21-Aug-04 9:02
memberChris Jonas21-Aug-04 9:02 
GeneralRe: The designer must create an instance of type 'System.Windows.Forms.DataGridColumnStyle' but it cannot because the type is declared as abstract. Pin
WooV5-Aug-05 1:14
memberWooV5-Aug-05 1:14 
AnswerRe: The designer must create an instance of type 'System.Windows.Forms.DataGridColumnStyle' but it cannot because the type is declared as abstract. Pin
pittaman23-Aug-07 22:33
memberpittaman23-Aug-07 22:33 
GeneralProblem when adding element Pin
Arch4ngel16-Aug-04 6:31
memberArch4ngel16-Aug-04 6:31 
GeneralCorrection to this grid Sudhakar Jalli or Jan Wiggers please reply! Pin
Christian Findlay8-Aug-04 15:14
sussChristian Findlay8-Aug-04 15:14 
GeneralRe: Correction to this grid Sudhakar Jalli or Jan Wiggers please reply! Pin
Madhawa10-May-05 23:58
memberMadhawa10-May-05 23:58 
GeneralRe: Correction to this grid Sudhakar Jalli or Jan Wiggers please reply! Pin
khalasura1-Dec-05 18:40
memberkhalasura1-Dec-05 18:40 
GeneralRe: Correction to this grid Sudhakar Jalli or Jan Wiggers please reply! Pin
kris41214-Feb-06 19:50
memberkris41214-Feb-06 19:50 
GeneralRe: Correction to this grid Sudhakar Jalli or Jan Wiggers please reply! Pin
bill_cs3-Aug-07 5:39
memberbill_cs3-Aug-07 5:39 
Generalno DataSource when creating DataGridComboBoxColumn Pin
JimmyVanderhaegen15-Jun-04 23:48
memberJimmyVanderhaegen15-Jun-04 23:48 
GeneralAlternatingBackColor = Color.LightYellow DataGrid Property Ignored in DataGridComboBoxColumn Pin
kembo25-May-04 7:43
memberkembo25-May-04 7:43 
GeneralRe: AlternatingBackColor = Color.LightYellow DataGrid Property Ignored in DataGridComboBoxColumn Pin
JimmyVanderhaegen16-Jun-04 0:49
memberJimmyVanderhaegen16-Jun-04 0:49 
QuestionDoes anyone have a working example of this that I can look at? Pin
bob_b20-May-04 9:35
memberbob_b20-May-04 9:35 
AnswerRe: Does anyone have a working example of this that I can look at? Pin
lawsocs20-May-04 23:30
memberlawsocs20-May-04 23:30 
GeneralGreat Code... Easy! Pin
<a href='http://www.coderforrent.com'>coderforrent3-May-04 11:31
membercoderforrent3-May-04 11:31 
GeneralI got a problem Pin
hxxbin23-Apr-04 10:00
memberhxxbin23-Apr-04 10:00 
GeneralHelp me to use this class, please Pin
alisura25-Mar-04 1:59
memberalisura25-Mar-04 1:59 
GeneralOther Code Change Pin
icarus@jps.net22-Mar-04 5:22
membericarus@jps.net22-Mar-04 5:22 
GeneralDataGrid ComboBox Events Pin
icarus@jps.net22-Mar-04 5:15
membericarus@jps.net22-Mar-04 5:15 
GeneralCode Change Pin
icarus@jps.net22-Mar-04 5:07
membericarus@jps.net22-Mar-04 5:07 
QuestionHow can I use MSFlexGrid instead of DataGrid Pin
QuynhGiao3-Feb-04 16:29
memberQuynhGiao3-Feb-04 16:29 
AnswerRe: How can I use MSFlexGrid instead of DataGrid Pin
Pete Burgess4-Mar-04 5:34
memberPete Burgess4-Mar-04 5:34 
AnswerRe: How can I use MSFlexGrid instead of DataGrid Pin
vanhao4-Mar-04 8:53
membervanhao4-Mar-04 8:53 
GeneralI need different ComboBox items for one ComboBoxColumn Pin
Ilia#29-Jan-04 23:29
memberIlia#29-Jan-04 23:29 
GeneralRe: I need different ComboBox items for one ComboBoxColumn Pin
EL HACHIMI9-Jun-04 4:26
memberEL HACHIMI9-Jun-04 4:26 
GeneralRe: I need different ComboBox items for one ComboBoxColumn Pin
schmidro13-Jun-04 14:07
memberschmidro13-Jun-04 14:07 
GeneralChosen text drawn too high Pin
Moebius Street13-Jan-04 6:48
memberMoebius Street13-Jan-04 6:48 
QuestionDataGridComboBox Bug ?? Pin
Anonymous24-Dec-03 8:31
sussAnonymous24-Dec-03 8:31 
Generalnot recieving commit call when updating Pin
Anonymous8-Dec-03 4:54
sussAnonymous8-Dec-03 4:54 
GeneralRe: not recieving commit call when updating Pin
Dr. Smartee10-Nov-04 6:30
sussDr. Smartee10-Nov-04 6:30 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150428.2 | Last Updated 26 Dec 2002
Article Copyright 2002 by Jan Wiggers
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid