Asp.net 循环通过动态创建的控件
我试图做的是动态创建一组下拉列表,然后我想循环遍历它们并用这些值更新数据库,但我面临的问题是我创建了下拉列表,但当我返回循环遍历它们时,它们不再在面板中。我不知道为什么,但当我调试时,我在pnlTeacherSelect中有50个控件,直到我按下调用prcChoose的按钮 在页面加载时调用Asp.net 循环通过动态创建的控件,asp.net,vb.net,drop-down-menu,foreach,controls,Asp.net,Vb.net,Drop Down Menu,Foreach,Controls,我试图做的是动态创建一组下拉列表,然后我想循环遍历它们并用这些值更新数据库,但我面临的问题是我创建了下拉列表,但当我返回循环遍历它们时,它们不再在面板中。我不知道为什么,但当我调试时,我在pnlTeacherSelect中有50个控件,直到我按下调用prcChoose的按钮 在页面加载时调用 Sub prcSetTeachers() For Each Subject In ds.Tables("Subject").Rows Dim Temp As New DropDown
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
知道是什么原因吗?提前谢谢 您必须在每次回发时(最迟在加载事件中)重新创建所有动态创建的控件。 您还必须确保它们获得与以前相同的ID以触发事件并维护ViewState 如果您知道要创建的控件的数量(可以存储在
ViewState
),则可以通过将计数器变量附加到control-ID来从中派生ID。然后可以在页面的init
事件中使用正确的ID重新创建它们
推荐读数:
数据源
并调用数据绑定
()
以下是我对实施中类似问题的回答: