asp.net VB 如何 select 将一个列表框上的所有匹配值转换为另一个列表框?

asp.net VB How to select all matching values on one listbox to another?

我有两个列表框,一个 DivisionListBox 和一个 SitesListbox。在部门列表框中,我有商店组 ID 值,在站点列表框中,我有多个值与部门列表框共享商店组 ID。

我想做的是,当我 select DivisionListbox 中的 Store Group ID 值时,它 selectSitesListbox 中与 selected 匹配的所有项目存储组 ID 值。

实现这个的正确方法是什么?

我如何填充列表框

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    FillDivisionListbox()
    FillSitesListbox()
End Sub

Private Sub FillDivisionListbox()

    Try
        divList = SQL.ExecQuery("SELECT STR_GRP_ID, CAST(STR_GRP_ID AS varchar) + ' - ' + GROUP_DESC AS IDDesc 
                                    FROM Store_Group_Desc")
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

    DivisionListBox.DataSource = divList
    DivisionListBox.DataTextField = "IDDesc"
    DivisionListBox.DataValueField = "str_grp_id"
    DivisionListBox.DataBind()


End Sub

Private Sub FillSitesListbox()

    Try
        siteList = SQL.ExecQuery("SELECT d.str_grp_id, (Cast(s.Str_ID As varchar) + ' - ' + s.Nm + ' [ ' + Cast(d.str_grp_id As varchar) + ' ]' ) as IDDesc
                            FROM Retail_Stores left outer join store_group d on ( s.str_id = d.str_id ) 
                                ORDER BY s.Str_ID")

    Catch ex As Exception
        MsgBox(ex.Message)
        Exit Sub
    End Try

    SitesListBox.DataSource = siteList
    SitesListBox.DataTextField = "IDDesc"
    SitesListBox.DataValueField = "str_grp_id"
    SitesListBox.DataBind()
End Sub

在 DivisionListBox 上,onselected 方法循环遍历站点列表框中的项目,如果 GroupID 与 DivisionListBox 中项目的 GroupID 匹配,则标记为选中。 例如

 foreach(ListItem item in SiteListBox.Items)
 {
      if(item.Value == DivisionListBox.SelectedValue)
       {
          item.selected = true;
       }
 }