为什么列表框总是选择第一项为真

时间:2014-02-07 10:02:42

标签: asp.net c#-4.0

在我的应用程序中,我的第一个ListBox填充在Dropdown的选定索引上,然后根据我的First Listbox中的Multiple Selected Item我填充SecondList框。

问题是第二个列表框总是占用FirstList Box中的第一个项目,即使它没有被选中,

填充我的代码

的第一个列表框
 protected void ddlSkillType_SelectedIndexChanged(object sender, EventArgs e)
    {
        List<TblSkillType> lstSkillType = ServiceAccess.GetProxy().GetSkillType();
        List<TblSkill> lstSkill = ServiceAccess.GetProxy().GetAllSkill();
        List<TblSkillDetail> lstSkillDetails = ServiceAccess.GetProxy().GetAllSkillDtls();
        var skill = (from a in lstSkillType
                     from b in lstSkill
                     from c in lstSkillDetails
                     where a.SkillTypeId == Convert.ToInt32(ddlSkillType.SelectedValue) && a.SkillTypeId == b.SkillTypeId && b.SkillId == c.SkillId
                     select new { b.SkillId, c.SkillName }).ToList();
        lstboxSkill.DataSource = skill;
        lstboxSkill.DataTextField = "SkillName";
        lstboxSkill.DataValueField = "SkillId";
        lstboxSkill.DataBind();
    }

并填写第二个列表框我的代码是

protected void imgbtnMoveRightListBox_Click(object sender, ImageClickEventArgs e)
    {
        for (int i = 0; i < lstboxSkill.Items.Count; i++)
        {
            if (lstboxSkill.Items[i].Selected)
            {
                lstBBoxSkill2.Items.Add(lstboxSkill.Items[i]);
            }

        }

}

我正在使用断点检查它,我发现Second ListBox始终采用第一个列表框的拳头,即使它未被选中。 即使是lstboxSkill中的第一个项目未被选中,forloop总是真正的infirst迭代并且为false 并且在第一个列表框中多次选择之后,第二个列表框填充第一个列表框的多个第一个列表框 我不知道是什么问题。 请帮我解决。

提前谢谢...... !!

1 个答案:

答案 0 :(得分:0)

填写listbox后,只需写下此行

即可
lstBBoxSkill2.SelectedIndex = -1;

lstBBoxSkill2.ClearSelected();