Asp.net 创建与已声明的另一个控件类型相同的新控件
我使用一个自定义模板类来生成带有中继器控件的行,我希望能够从我的aspx页面后面的代码中动态地指定这个中继器中的控件。 在代码隐藏中,我将控件添加到如下列表:Asp.net 创建与已声明的另一个控件类型相同的新控件,asp.net,vb.net,winforms,controls,Asp.net,Vb.net,Winforms,Controls,我使用一个自定义模板类来生成带有中继器控件的行,我希望能够从我的aspx页面后面的代码中动态地指定这个中继器中的控件。 在代码隐藏中,我将控件添加到如下列表: Dim lstControls As New List(Of Control) lstControls.Add(New TextBox) lstControls.Add(New Label) lstControls.Add(New CheckBox) lstControls.Add(New DropDownList) lstControl
Dim lstControls As New List(Of Control)
lstControls.Add(New TextBox)
lstControls.Add(New Label)
lstControls.Add(New CheckBox)
lstControls.Add(New DropDownList)
lstControls.Add(New CheckBox)
Dim ph As New PlaceHolder
For i = 0 To lstControls.Count - 1
ph.Controls.Add(lstControls(i))
Next
然后,我使用此行将控件添加到模板中
rptrSummary.ItemTemplate = New myTemplate(ListItemType.Item, , lstControls)
从这个角度来看,我正在做这样的事情:
Dim lstControls As New List(Of Control)
lstControls.Add(New TextBox)
lstControls.Add(New Label)
lstControls.Add(New CheckBox)
lstControls.Add(New DropDownList)
lstControls.Add(New CheckBox)
Dim ph As New PlaceHolder
For i = 0 To lstControls.Count - 1
ph.Controls.Add(lstControls(i))
Next
这无法正常工作,我的repeater控件的.databind()后面的控件我指定的控件只显示在最后一行。我想这是因为我只将控件声明为新控件一次,所以我只有一行值
tldr?/结论:
如何生成与列表中的控件类型相同的新控件?比如:
Dim newControl as new Control = type(lstControl(0))
(这显然不起作用)我找到了答案,下面是一些例子,以防其他人被卡住(我也可以更改标题,使其更类似于可能的搜索条件): newObject1现在是一个文本框 newObject2现在是一个标签