drop-down-menu - 在运行时创建的不同 DropDownLists 不允许选择不同的项目?
问题描述
我需要在运行时创建许多下拉列表并为每个下拉列表选择不同的项目。为了避免连续访问数据库,我创建了一个下拉列表,我复制了克隆下拉列表中的项目。奇怪的是,所有创建的下拉列表都选择了最后一个下拉列表的项目,我不明白为什么!我不得不插入对所选项目的清理 ["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
解决方案
好的,我自己搞定了!当我做
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
我说对了吗?
推荐阅读
- c++ - 内核上的 CUDA 非法内存访问
- c++ - 如何转换 std::array
到 char (&dest)[N]? - ckan - CKAN 空间搜索小部件不返回任何结果
- amazon-web-services - S3 同步排除 .gitgnore 的捎带
- c++ - 使用 MSVC 编译的 Qt 程序在 app.exec() 上崩溃
- python - 无法从 IntellijIDEA 中的 requirements.txt 安装一些库
- javascript - 如何将点击事件放在多个对象上
- javascript - AJAX 请求超时
- vim - .vimrc 中的正则表达式抛出“不是编辑器命令”
- machine-learning - 形状属性中的神经网络密集层错误