Selected ListItem未被识别为已选中

时间:2013-11-04 12:18:59

标签: c# if-statement listbox selected listitem

首先是我的代码:

foreach (ListItem l in l_roles.Items)
                {
                    if (l.Selected)
                    {
                        SqlCommand find_r = new SqlCommand("SELECT id FROM roles WHERE rolename=@rolename", conn);
                        find_r.Parameters.AddWithValue("@rolename", l.Text);
                        f = find_r.ExecuteScalar().ToString();

                        SqlCommand fill_g_r = new SqlCommand("INSERT INTO groups_roles (group_id, role_id) VALUE (@group_id, role_id)", conn);
                        fill_g_r.Parameters.AddWithValue("@group_id", l_gr_id.Text);
                        fill_g_r.Parameters.AddWithValue("@role_id", f);
                        fill_g_r.ExecuteNonQuery();
                    }


                }

当我在调试模式下测试此代码时,选择列表框中的项目并点击按钮,没有任何反应。

如果我在“foreach”结束时设置断点,我可以看到:

if (l.Selected)

是假的。

l.Text

是我之前选择的正确的列表项目。 我还尝试了其他可能性:

if(!l.selected) or if(l.selected == true)

我希望有人有个主意吗?

1 个答案:

答案 0 :(得分:0)

如果您的项目是Asp.Net并且您在页面加载事件中填充了listBox控件,那么只需输入此控件:

if(!IspostBack)
 this.LoadListBox(); //your fill method

因为,当您发布页面时,页面加载事件触发并再次填充listBox。所以你的选择正在结束。