Listbox in asp.net not getting selected items
asp.net, c#, listbox
Solution
You are setting it to the same value every time:
foreach (ListItem li in lstCatID.Items)
{
if (li.Selected == true)
{
// you are always using lstCatID.SelectedItem.Value.
CatID += lstCatID.SelectedItem.Value + ",";
}
}
When you actually want the value of the item in your loop that is selected:
foreach (ListItem li in lstCatID.Items)
{
if (li.Selected == true)
{
// get the value of the item in your loop
CatID += li.Value + ",";
}
}
Problem
I have multiple dropdown & listbox in my webpage. I am trying to get a list of `CategoryID` from a `lstCatID` listbox i am able to populate the listbox with category name. If i remember correctly in first attempt my code worked fine, after that i made some change then it stated to always get the first item selected x No. of time ``` <asp:ListBox ID="lstCatID" runat="server" DataTextField="CategoryName" DataValueField="CategoryID" SelectionMode="Multiple" CssClass="lstListBox"> </asp:ListBox> protected void Button1_Click(object sender, EventArgs e) { string CatID = string.Empty; foreach (ListItem li in lstCatID.Items) { if (li.Selected == true) { // Response.Write(); CatID += lstCatID.SelectedItem.Value + ","; } } Response.Write(CatID); } ``` I am not sure what is going wrong i checkd MSDN it show exactly the same way of doing it. May be i am doing something wrong. Just to add using firefox i am able to see multiple selected value have selected property. ``` <option value="3" selected="selected">One</option> <option value="2">Two</option> <option value="29" selected="selected">Three</option> <option value="25" selected="selected">Four</option> <option value="22" >Five</option> ``` My output in this case will be `3,3,3` I would appreciate help in this regard