我有一个用户控件,它返回一个数据表,在某些情况下需要循环,一个显示在另一个之上。
我可以通过在页面中放置一个固定的placeholder
来动态添加单个实例。
我现在正试图找出如何添加多个,因为我不知道可能需要多少我不想对占位符进行硬编码。
我已经尝试了以下内容,但我只是得到一个实例,大概是第一个被第二个覆盖
我的HTML
<div id="showHere" runt="server"/>
VB
Dim thisPh As New PlaceHolder
thisPh.Controls.Add(showTable)
showHere.Controls.Add(thisPh)
Dim anotherPh As New PlaceHolder
anotherPh .Controls.Add(showTable)
showHere.Controls.Add(anotherPh)
如何在showHere
div中添加重复的表?
答案 0 :(得分:1)
你是否尝试过这个:
For each tbl in ShowTables
showHere.Controls.Add(tbl)
showHere.Controls.Add(New LiteralControl("<br />"))
Next
答案 1 :(得分:1)
我建议为每个表格生成不同的ID。例如,
Dim i As Integer
i = 0
For each tbl in ShowTables
tbl.ID = "MyTab" + i.ToString()
i = i + 1
showHere.Controls.Add(tbl)
showHere.Controls.Add(New LiteralControl("<br />"))
Next
另一方面,让一个用户/自定义控件为单个表生成html,然后将用户/自定义控件嵌套在转发器(或类似的控件,如ListView等)中会更有意义。
答案 2 :(得分:0)
在我自己解决这个问题之后,我偶然发现了以下解决方案。
On button click()
LocationDiv.Visible = True
Dim existingItems As New List(Of Object)
If Not Session("existingItems") Is Nothing Then
existingItems = CType(Session("existingItems"), List(Of Object))
For Each item As Object In existingItems
LocationDiv.Controls.Add(item)
Next
existingItems.Clear()
End If
LocationDiv.Controls.Add(New LiteralControl("<b>" & Text & "</b>"))
For Each item As Object In LocationDiv.Controls
existingItems.Add(item)
Next
Session.Add("existingItems", existingItems)