【问题标题】:How to create img tags dynamically from the code behind如何从后面的代码动态创建img标签
【发布时间】:2015-05-12 19:40:09
【问题描述】:

我有以下 img 标签:

  <img  id="cross" runat="server"  />

我想根据从数据库返回的数据创建几个 img 标签。但我不断收到错误“System.Web.UI.HtmlControls.HtmlImage”不允许子控件。

如何动态创建img标签?

例如,如果我从数据库中返回要创建的 5 个点 (XCoord,YCoord),我想创建新的 5 个图像。

这是我的代码:

 Dim ds As DataSet = dba.GetIncidentsByZone(135, "02/11/2015", "05/12/2015", m_User.CompanyCode)
            If Not ds Is Nothing Then
                For Each dr As DataRow In ds.Tables(0).Rows()
                    cross.Controls.Add(New HtmlImage() With {.Src = "C:/Inetpub/temp/pointer.gif", .Alt = ""})
                    cross.Style.Add("left", dr("XCoord").ToString() + "px")
                    cross.Style.Add("top", dr("YCoord").ToString() + "px")
                    cross.Attributes.Add("style", "visibility:visible")
                Next
            End If

【问题讨论】:

  • 您正试图在另一个图像标签中添加一个图像标签。该错误告诉您这是不允许的。您可以将图像添加到另一个接受子控件(如 div)的控件。
  • 我正在尝试为来自数据库的每条记录创建一个新的图像标签实例。你建议我做什么?

标签: html asp.net vb.net


【解决方案1】:

根据您的评论,您的循环需要看起来更像这样:

If Not ds Is Nothing Then
    For Each dr As DataRow In ds.Tables(0).Rows()
        Dim newImage as  New HtmlImage() With {.Src = "C:/Inetpub/temp/pointer.gif", .Alt = ""}
        newImage.Style.Add("left", dr("XCoord").ToString() + "px")
        newImage.Style.Add("top", dr("YCoord").ToString() + "px")
        someOtherContainerItemLikeADiv.Controls.Add(newImage)
    Next
End If

在循环的每次迭代中,您需要创建一个新图像,设置它的属性,然后将其添加到某种允许子控件的控件,例如 div。

【讨论】:

    猜你喜欢
    • 2011-12-21
    • 2012-04-17
    • 2012-08-05
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多