Solved

Change datagridview combobox column to listindex = -1

Posted on 2010-11-16
19
988 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
 

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
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.

 

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Linq Help 1 35
Help with Query not working in client's PC 1 35
What .NET URL re-routing tool did I use? 2 36
C# Single Form 8 27
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …

912 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

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now