Solved

Populate Combbobox in DataRepeater

Posted on 2009-07-05
14
377 Views
Last Modified: 2013-11-26
Hi Experts

I have a Combo box in a data repeater witch I want to populate with a few values from a MS access database. I use the following code to try and populate the Combo box:

        Vehicle_NameComboBox.DataSource = TransportInfoSys_beDataSet.Tables("Vehicles")
        Vehicle_NameComboBox.DisplayMember = "Vehicle_Name"

But when i run this command there doesn't happen anything.

Any help would be greatly appreaciated

Thanx in advance
Vehicle_NameComboBox.DataSource = TransportInfoSys_beDataSet.Tables("Vehicles")
        Vehicle_NameComboBox.DisplayMember = "Vehicle_Name"

Open in new window

0
Comment
Question by:Benvor
  • 7
  • 6
14 Comments
 
LVL 53

Expert Comment

by:Dhaest
ID: 24783069
First, I would suggest not using the reader.  Create a dataset and dataadapter and set the datasource of the combobox = dataset.  From there you can set the display member and value member.  Here is the code:


Dim dataset As New DataSet
 
Using connection As New SqlConnection(connectionString)
   Dim adapter As New SqlDataAdapter()
   adapter.SelectCommand = New SqlCommand("select Name,ID from tblName", connection)
   adapter.Fill(dataset)
End Using
 
ComboBox1.DataSource = dataset.Tables(0)
ComboBox1.DisplayMember = "Name"
ComboBox1.ValueMember = "ID"

Open in new window

0
 
LVL 53

Expert Comment

by:Dhaest
ID: 24783072
Using a datareader, you can't use the binding !
Dim strConnect as Strng
strConnect = Session("ConnectionString") 
 
' Open the Connection 
Dim Con as new System.Data.SQLClient.SQLConnection(strConnect) 
Con.Open() 
 
' SQL Statement
Dim strSQL as String
strSQL = "SELECT State_Name, State_Code FROM TableState ORDER BY State_Name"
 
' Command, Data Reader 
Dim Com as new System.Data.SQLClient.SQLCommand(strSQL, Con) 
Dim rdr as System.Data.SQLClient.SQLDataReader = Com.ExecuteReader() 
 
' Populate the Control 
While rdr.Read()
   Dim newListItem as new ListItem() 
   newListItem.Text = rdr.GetString(0)
   newListItem.Value = rdr.GetString(1) 
   DropDownList1.Items.Add(newListItem) 
End While

Open in new window

0
 

Author Comment

by:Benvor
ID: 24783100
Sorry but I'm confused, witch code must I use now?
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.

 
LVL 53

Expert Comment

by:Dhaest
ID: 24783172
You'll have to make a choice :)

I you want to use the binding like you set in your question, you'll need the first solution
0
 
LVL 9

Expert Comment

by:Rahul Goel ITIL
ID: 24783201
Add one more line

Vehicle_NameComboBox.DataBind()
0
 

Author Comment

by:Benvor
ID: 24783230
'Databind' is not a member of 'System.Windows.Forms.Combobox'.
0
 
LVL 53

Expert Comment

by:Dhaest
ID: 24783250
is your datatable filled before you do this:
Vehicle_NameComboBox.DataSource = TransportInfoSys_beDataSet.Tables("Vehicles")
Vehicle_NameComboBox.DisplayMember = "Vehicle_Name"

If not, you need to fill it like I mentioned in the first post
0
 

Author Comment

by:Benvor
ID: 24783270
Here are everything I have on my Form, and they fill on FormLoad
untitled.bmp
0
 

Author Comment

by:Benvor
ID: 24783785
The adapter fills correctly, but the combo box on the data repeater still doesn't fill
0
 

Author Comment

by:Benvor
ID: 24783801
I've just tried it with a combo box that is not on the data repeater, and it filled it up completely with the correct values. But as soon as the combo box is dragged onto the data repeater it doesn't fill anymore
0
 
LVL 53

Accepted Solution

by:
Dhaest earned 500 total points
ID: 24785001
I think it is databound comboboxes that the datarepeater cannot cope with. No idea why not, very frustrating!.

I've found this link:
http://www.vbforums.com/showthread.php?referrerid=61394&t=535556

Just drag a new combobox with no databindings from the toolbox, set its items manually in the itemcloned event using the bindingsource and an arraylist (see example in link) and then set its selected index in the drawitem  event using a hidden databound label control

That'll have to do for now.

Comment from expert pedsys found at http://www.experts-exchange.com/Programming/Languages/.NET/Visual_Basic.NET/Q_23961065.html
0
 

Author Comment

by:Benvor
ID: 24811359
Hi Dhaest

I tried to get the code to work but I'm not sure what I must replace this piece of code with? Can you please help me

            VDP_Array.Add(New mdlStrDefs.ComboListData("Ea", 1))
            VDP_Array.Add(New mdlStrDefs.ComboListData("Sf", 2))
            VDP_Array.Add(New mdlStrDefs.ComboListData("Lf", 3))

"Type 'mdlStrDefs.ComboListData' is not defined"
0
 
LVL 53

Expert Comment

by:Dhaest
ID: 24811372
What data do you want to store in your combobox ? Is it a list of strings, objects, ...
0
 

Author Comment

by:Benvor
ID: 24811406
It is a list of vehicles(Display Member) and each one has a ID(Value Member)
0

Featured Post

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.

Question has a verified solution.

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

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
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…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

792 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