Change datagridview combobox column to listindex = -1

I have a form with a datagridview populated from a data table.  1 of the columns is a combobox.
Let's say for example there are only 2 columns (the first is a textbox that displays "Name" and the second is a combobox which displays "City").  Right now it shows:

Joe Johnson     Miami
Bob Smith         Boston

My question is how can I set the "City" combobox to listindex -1 after the grid loads so that the city is blank and the user is forced to make a selection.   Again, this is a bound dgv
PSCTECHAsked:
Who is Participating?
 
PSCTECHAuthor Commented:
I got it to work by setting the displaymember and valuemember but NOT setting the datapropertyname.  This left the combobox with nothing being displayed, but since the valuemember and displaymember are set, I can then choose the appropriate city from the combobox.  
0
 
CodeCruiserCommented:
What is the datatype of the combobox column in datatable? Is it text (display member) or numeric(value member)?
0
 
PSCTECHAuthor Commented:
display member is text
value member is numeric
0
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

 
CodeCruiserCommented:
Do you have 2 columns in DataTable for the combobox?
0
 
PSCTECHAuthor Commented:
yes
0
 
CodeCruiserCommented:
Which one do you bind it to? The reason I am asking this is that if you are binding it to the value member then try setting the value member to -1.
0
 
PSCTECHAuthor Commented:
it's bound to the value member (numeric)
0
 
CodeCruiserCommented:
Yeah then try setting the value to -1 which would probably make the column empty.
0
 
PSCTECHAuthor Commented:
tried that it has no effect
0
 
CodeCruiserCommented:
Can you show the code you are using to load and bind the grid?
0
 
PSCTECHAuthor Commented:
here's a stripped down version
Private Sub frmInvRelocate_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim objBllSite As New BLLCity
Dim dsCity As DataSet = objBllSite.GetAllSites()

Dim colCity As New DataGridViewComboBoxColumn

'fill grid from dataset to set dg structure
dgInvRelocate.DataSource = objBllInv.GetInvRelocate(strWhere).Tables(0)
        dgInvRelocate.AutoResizeColumns()

'fill combobox list from city datasource
colName_UIC.DisplayMember = "CITY"
colName_UIC.ValueMember = "CITY_ID"
colName_UIC.DataSource = dsSiteCol.Tables(0).DefaultView

dgInvRelocate.Columns.Add(colCity)

End Sub



Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click

dgInvRelocate.DataSource = objBllInv.GetInvRelocate(strWhere).Tables(0)  

'refresh grid and reset comboboxes
For x = 0 To dgInvRelocate.Rows.Count - 1
   dgInvRelocate.Rows(x).Cells("NAME_UIC").Value = -1
Next
End Sub

Open in new window

0
 
PSCTECHAuthor Commented:
Where it says "NAME_UIC" in the for loop, it should actually read "CITY_ID".  Sorry for the confusion
0
 
CodeCruiserCommented:
0
 
PSCTECHAuthor Commented:
it's set to: colCity.DataPropertyName = "CITY_ID"
0
 
CodeCruiserCommented:
Try setting it to City
0
 
PSCTECHAuthor Commented:
Invalid value error.   Doesn't the dataproperty name have to match the value member??
0
 
CodeCruiserCommented:
>I can then choose the appropriate city from the combobox.  
But that selection would not be saved to the datatable. How would you save then?
0
 
PSCTECHAuthor Commented:
we are not saving the datatable.  we are, on a row by row basis (if changes were made) saving directly from the datagridview to the database.  
0
 
PSCTECHAuthor Commented:
solved in-house
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.