Solved

Change datagridview combobox column to listindex = -1

Posted on 2010-11-16
19
991 Views
Last Modified: 2012-05-10
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
0
Comment
Question by:PSCTECH
  • 11
  • 8
19 Comments
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 34150212
What is the datatype of the combobox column in datatable? Is it text (display member) or numeric(value member)?
0
 

Author Comment

by:PSCTECH
ID: 34150367
display member is text
value member is numeric
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 34150608
Do you have 2 columns in DataTable for the combobox?
0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 

Author Comment

by:PSCTECH
ID: 34151233
yes
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 34153442
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
 

Author Comment

by:PSCTECH
ID: 34155231
it's bound to the value member (numeric)
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 34155257
Yeah then try setting the value to -1 which would probably make the column empty.
0
 

Author Comment

by:PSCTECH
ID: 34155282
tried that it has no effect
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 34155288
Can you show the code you are using to load and bind the grid?
0
 

Author Comment

by:PSCTECH
ID: 34155391
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
 

Author Comment

by:PSCTECH
ID: 34155422
Where it says "NAME_UIC" in the for loop, it should actually read "CITY_ID".  Sorry for the confusion
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 34155430
0
 

Author Comment

by:PSCTECH
ID: 34155453
it's set to: colCity.DataPropertyName = "CITY_ID"
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 34155611
Try setting it to City
0
 

Author Comment

by:PSCTECH
ID: 34155669
Invalid value error.   Doesn't the dataproperty name have to match the value member??
0
 

Accepted Solution

by:
PSCTECH earned 0 total points
ID: 34157308
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
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 34158198
>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
 

Author Comment

by:PSCTECH
ID: 34158285
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
 

Author Closing Comment

by:PSCTECH
ID: 34186392
solved in-house
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article describes relatively difficult and non-obvious issues that are likely to arise when creating COM class in Visual Studio and deploying it by professional MSI-authoring tools. It is assumed that the reader is already familiar with the cla…
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

832 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question