【问题标题】:Different DropDownLists created at runtime do not allow selecting different items?在运行时创建的不同 DropDownLists 不允许选择不同的项目?
【发布时间】:2019-11-23 09:56:56
【问题描述】:

我需要在运行时创建许多下拉列表并为每个下拉列表选择不同的项目。 为了避免连续访问数据库,我创建了一个下拉列表,我复制了克隆下拉列表中的项目。奇怪的是,所有创建的下拉列表都选择了最后一个下拉列表的项目,我不明白为什么!我不得不插入对所选项目的清理 ["DlistClone.ClearSelection ()"] 因为否则代码会出错。谁能帮我?谢谢

   Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim MyRow As New TableRow
    Dim MyCell As New TableCell

    Dim DList As DropDownList
    Dim DlistClone As DropDownList
    DList = New DropDownList
    DList.Items.Add("1")
    DList.Items.Add("2")
    DList.Items.Add("3")

    MyRow = New TableRow
    MyCell = New TableCell
    DlistClone = New DropDownList
    ClonaDList(DList, DlistClone)
    DlistClone.ClearSelection()
    DlistClone.Items.FindByText("3").Selected = True
    MyCell.Controls.Add(DlistClone)
    MyRow.Cells.Add(MyCell)

    Table1.Rows.Add(MyRow)

    MyRow = New TableRow
    MyCell = New TableCell
    DlistClone = New DropDownList
    ClonaDList(DList, DlistClone)
    DlistClone.ClearSelection()
    DlistClone.Items.FindByText("2").Selected = True
    MyCell.Controls.Add(DlistClone)
    MyRow.Cells.Add(MyCell)

    Table1.Rows.Add(MyRow)
End Sub

Sub ClonaDList(ByVal Origine As DropDownList, ByVal Destinazione As DropDownList)
    Dim I As Integer
    Dim EleList As ListItem

    For I = 0 To Origine.Items.Count - 1
        EleList = Origine.Items(I)
        Destinazione.Items.Add(EleList)
    Next I
End Sub

【问题讨论】:

    标签: drop-down-menu copy runtime items


    【解决方案1】:

    好的,我自己搞定了! 当我这样做时

    EleList = Origin.Items (I)
    Destination.Items.Add (EleList)

    我在源下拉列表和目标下拉列表之间创建了一个无意的绑定。 要中断绑定,我必须使用两个控件之间的桥梁,在这种情况下,我通过在 2 个连续步骤中设置 2 个属性来使用 Listitem 对象

    Sub ClonaDList(ByRef Origine As DropDownList, ByRef Destinazione As DropDownList)
        Dim I As Integer
        Dim EleList As ListItem
    
        For I = 0 To Origine.Items.Count - 1
            EleList = New ListItem
            EleList.Text = Origine.Items(I).Text
            EleList.Value = Origine.Items(I).Value
            Destinazione.Items.Add(EleList)
        Next I
    End Sub
    

    我说对了吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-15
      • 2013-12-06
      • 2018-05-27
      相关资源
      最近更新 更多