0

选中复选框列表时,我设置了以下方法。

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

    }

我需要从复选框列表中显示选中的项目。但是,对于每次迭代,选定的属性总是为 false。它永远不满足条件

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

我该如何解决?

4

2 回答 2

1

尝试这样的事情

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

或者在你的情况下

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

现在您将拥有一个可以检查/编码的集合

还要确保这个代码被触发,或者检查是否有PostBack

你可以通过检查来检查if(!Is.PostBack){ }

于 2013-08-05T21:31:07.377 回答
0

我的钱是你在每次回发时重新绑定控件,而不是这样做:

if (!Page.IsPostBack)
{ 
    // Only bind controls on initial page and let viewstate remember what the user did
}
于 2013-08-05T21:32:45.397 回答