user544079
user544079

Reputation: 16639

Getting the selected values in a checkbox list

I have set up the following method when the checkbox list is checked.

 protected void chk1_SelectedIndexChanged(object sender, EventArgs e)
    {
        foreach (ListItem list in chk1.Items)
        {
            if (list.Selected)
            {
                string name = list.Value.ToString();
            }
        }

    }

I need to display the checked item from the checkbox list. However, for each iteration the selected attribute always comes false. It never satisfies the condition

                if (list.Selected)
                {
                    string name = list.Value.ToString();
                }

How do I fix this?

Upvotes: 0

Views: 1522

Answers (2)

Karl Anderson
Karl Anderson

Reputation: 34834

My money is on you are re-binding the controls on every postback, instead do this:

if (!Page.IsPostBack)
{ 
    // Only bind controls on initial page and let viewstate remember what the user did
}

Upvotes: 0

MethodMan
MethodMan

Reputation: 18863

Try something like this

var selectedListItems = chk1.Items.Cast<ListItem>().Where(x => x.Selected);

or in your case

var list = chk1.Items.Cast<ListItem>().Where(x => x.Selected);

now you will have a Collection that you can check / code against

also make sure that this code is being fired and or check if there is a PostBack

you can check this by checking if(!Is.PostBack){ }

Upvotes: 1

Related Questions