Problem with binding ListItemCollection with DropDownList

G

Guest

Hi

There is a ListItemCollection containing ListItems (of course), each of whose Value and Text properties have been set. The Value and Text's values are different

i.e.
ListItem[0].Text = "Name0"
ListItem[0].Value = "ID0"

ListItem[1].Text = "Name1"
ListItem[1].Value = "ID1"

The above ListItem(s) are a part of the ListItemCollection that I mentioned before

Then I set the DataSource of a DropDownList (on my page) to the ListItemCollection and bind it

DropDownList.DataSource = ListItemCollection
DropDownList.DataBind()

But the DropDownList does not pick up the Value and the Text properties separately. It sets the Text Property of each ListItem as the Value also

On the other hand if I iterate through the ListItemCollection and Add() each ListItem to the DropDownList, then the Value and Text fields are picked separately

i.e.

foreach(ListItem in ListItemCollection

DropDownLIst.Items.Add(ListItem)


Can someone tell me why this is happening and if this is some sort of known issue in .NET

RAMADU
 
A

Ashish M Bhonkiya

Hi RAMADU,

Is there any specificy reason for you to use the ListItemCollection ???

you can easily solve the problem using a simply hashtable as follows.

put the code in the page_load

Hashtable myHashtable = new Hashtable();
myHashtable .Add("One","One");
myHashtable .Add("Two","Two");
myHashtable .Add("Three","Three");

DropDownList1.DataSource = myHashtable ;
DropDownList1.DataTextField = "Key";
DropDownList1.DataValueField = "Value";
DropDownList1.DataBind();

Regards
Ashish M Bhonkiya

RAMADU said:
Hi,

There is a ListItemCollection containing ListItems (of course), each of
whose Value and Text properties have been set. The Value and Text's values
are different.
i.e.
ListItem[0].Text = "Name0";
ListItem[0].Value = "ID0";

ListItem[1].Text = "Name1";
ListItem[1].Value = "ID1";

The above ListItem(s) are a part of the ListItemCollection that I mentioned before.

Then I set the DataSource of a DropDownList (on my page) to the
ListItemCollection and bind it.
DropDownList.DataSource = ListItemCollection;
DropDownList.DataBind();

But the DropDownList does not pick up the Value and the Text properties
separately. It sets the Text Property of each ListItem as the Value also.
On the other hand if I iterate through the ListItemCollection and Add()
each ListItem to the DropDownList, then the Value and Text fields are picked
separately.
 
A

Ashish M Bhonkiya

Hi Ramadu,
You can can even do it using the ListItemCollection .

You need to provide the DataTextField and DataValueField before you do the
Call the Databind method or the DropDownList

Here is a sample code to explain how to do this.

Put this code on the page_load

ListItemCollection myColl = new ListItemCollection();

myColl.Add( new ListItem("One","One"));
myColl.Add( new ListItem("Two","Two"));
myColl.Add( new ListItem("Three","Three"));


DropDownList1.DataSource = myColl;
// This two lines you are missing ???
DropDownList1.DataTextField = "text";
DropDownList1.DataValueField = "value";
DropDownList1.DataBind();

HTH
Regards
Ashish M Bhonkiya

RAMADU said:
Hi,

There is a ListItemCollection containing ListItems (of course), each of
whose Value and Text properties have been set. The Value and Text's values
are different.
i.e.
ListItem[0].Text = "Name0";
ListItem[0].Value = "ID0";

ListItem[1].Text = "Name1";
ListItem[1].Value = "ID1";

The above ListItem(s) are a part of the ListItemCollection that I mentioned before.

Then I set the DataSource of a DropDownList (on my page) to the
ListItemCollection and bind it.
DropDownList.DataSource = ListItemCollection;
DropDownList.DataBind();

But the DropDownList does not pick up the Value and the Text properties
separately. It sets the Text Property of each ListItem as the Value also.
On the other hand if I iterate through the ListItemCollection and Add()
each ListItem to the DropDownList, then the Value and Text fields are picked
separately.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,042
Latest member
icassiem

Latest Threads

Top