A
Aaron Prohaska
I'm having the problem with this drop down list on postback. For some
reason both the ListItems get selected when I change the selected item.
Using the code below I'm building the drop down list in the overriden
CreateChildControls method and setting the selected item. Then when I
change the item in the drop down list the list is rebuilt from
viewstate, but the initial item is still selected causing the error
below.
I also have a number of other drop down lists in this custom control
that work just fine, so its a bit confusing to me why only this one
doesn't work.
Can anyone see what might be causing this?
ERROR:
System.Web.HttpException: A DropDownList cannot have multiple items
selected.
CODE:
CreateChildControls()
{
this.rearTravelList = (DropDownList)Page.FindControl("rearTravelList");
this.rearTravelList.AutoPostBack = true;
this.rearTravelList.SelectedIndexChanged += new EventHandler(
this.SelectedRearTravelChanged );
if ( !Page.IsPostBack )
this.BuildRearTravelList();
}
private void BuildRearTravelList()
{
ListItem xCountryItem = new ListItem();
ListItem freeRideItem = new ListItem();
xCountryItem.Text = "X Country 2.25-4.49in";
xCountryItem.Value = RidingStyle.XC.ToString();
freeRideItem.Text = "Free Ride 4.5-6in";
freeRideItem.Value = RidingStyle.FR.ToString();
this.rearTravelList.Items.Add( xCountryItem );
this.rearTravelList.Items.Add( freeRideItem );
this.SetSelectedItem( this.rearTravelList, this.RidingStyle.ToString()
);
}
private void SetSelectedItem(ListControl list, string textValue)
{
list.ClearSelection();
ListItem item = list.Items.FindByValue( textValue );
if ( item != null )
item.Selected = true;
}
reason both the ListItems get selected when I change the selected item.
Using the code below I'm building the drop down list in the overriden
CreateChildControls method and setting the selected item. Then when I
change the item in the drop down list the list is rebuilt from
viewstate, but the initial item is still selected causing the error
below.
I also have a number of other drop down lists in this custom control
that work just fine, so its a bit confusing to me why only this one
doesn't work.
Can anyone see what might be causing this?
ERROR:
System.Web.HttpException: A DropDownList cannot have multiple items
selected.
CODE:
CreateChildControls()
{
this.rearTravelList = (DropDownList)Page.FindControl("rearTravelList");
this.rearTravelList.AutoPostBack = true;
this.rearTravelList.SelectedIndexChanged += new EventHandler(
this.SelectedRearTravelChanged );
if ( !Page.IsPostBack )
this.BuildRearTravelList();
}
private void BuildRearTravelList()
{
ListItem xCountryItem = new ListItem();
ListItem freeRideItem = new ListItem();
xCountryItem.Text = "X Country 2.25-4.49in";
xCountryItem.Value = RidingStyle.XC.ToString();
freeRideItem.Text = "Free Ride 4.5-6in";
freeRideItem.Value = RidingStyle.FR.ToString();
this.rearTravelList.Items.Add( xCountryItem );
this.rearTravelList.Items.Add( freeRideItem );
this.SetSelectedItem( this.rearTravelList, this.RidingStyle.ToString()
);
}
private void SetSelectedItem(ListControl list, string textValue)
{
list.ClearSelection();
ListItem item = list.Items.FindByValue( textValue );
if ( item != null )
item.Selected = true;
}