我想要做的是动态创建一堆下拉列表然后我想循环遍历它们并使用这些值更新数据库,但我面临的问题是我创建了下拉列表,但是当时我回过头来看看他们不再是小组。我不知道为什么,但是当我调试时,我在pnlTeacherSelect中有50个控件,直到我按下调用prcChoose的按钮。
在页面加载时调用
Sub prcSetTeachers()
For Each Subject In ds.Tables("Subject").Rows
Dim Temp As New DropDownList
pnlTeacherSelect.Controls.Add(Temp)
Temp.ID = "drp" & Subject.Item(0) & "s" & Child.Item(0)
Next
End Sub
在点击按钮
时调用Sub prcChoose()
For Each DropDownList In pnlTeacherSelect.Controls.OfType(Of DropDownList)
'This is never executed
Next
End Sub
任何想法是什么造成的?提前谢谢!
答案 0 :(得分:2)
您必须在每次回发时重新创建所有动态创建的控件(最迟在加载事件中)。 您还必须确保它们获得与以前相同的ID以触发事件并维护ViewState。
如果您知道要创建的控件数量(可以存储在ViewState
中),您可以通过将其附加到control-id来从计数器变量中获取ID。然后,您可以在页面的init
事件中使用正确的ID重新创建它们。
可推荐的读物:
或者您使用内置Data-Bound Control之类的Repeater自动执行此操作。您只需设置DataSource
并致电DataBind
()。
以下是关于实施的类似问题的答案: