【问题标题】:Dynamically Adding Multiple User Controls vb.net动态添加多个用户控件 vb.net
【发布时间】:2012-03-16 21:18:30
【问题描述】:

我有一个用户控件,它返回一个数据表,在某些情况下需要循环显示一个在另一个之上。

我可以通过在页面中放置一个固定的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 中添加重复的表格?

【问题讨论】:

    标签: asp.net vb.net user-controls placeholder dynamic-controls


    【解决方案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】:

    你试过简单吗,这个:

    For each tbl in ShowTables        
        showHere.Controls.Add(tbl)
        showHere.Controls.Add(New LiteralControl("<br />"))
    Next
    

    【讨论】:

    • 看起来不错,但仍然只显示一张表格
    • 你确定你没有设置一些固定表格位置(位置:绝对...)或 div 大小的 CSS 脚本吗?
    • 肯定的。呈现的 HTML 中没有显示任何内容,只有一个没有显示
    【解决方案3】:

    在自己对这个问题大惊小怪后,我偶然发现了以下解决方案。

    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)
    

    【讨论】:

      猜你喜欢
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 2012-12-10
      • 1970-01-01
      相关资源
      最近更新 更多