ASP.Net Add control "Cannot retrieve internal content [control] because the content is not literal."

I'm currently trying to dynamically add HTML controls to my web form, but every time I paste the control into another control, an error message appears Cannot get inner content of [control] because the contents are not literal(when I try to look at innerHtml or innerText) and it can't seem to find the reason.

Here is the code I'm using:

Dim newsList As New HtmlControls.HtmlGenericControl
    newsList.TagName = "ul"
    Dim i As Integer = 0
    For Each newsDR As DataRow In newDS.Tables(0).Rows
        i += 1
        Dim stri As String = i.ToString()
        Dim newsListItem As New HtmlControls.HtmlGenericControl
        newsListItem.TagName = "li"
        newsListItem.ID = "newsListItem" + stri

        Dim newsTitle As New HtmlControls.HtmlGenericControl
        newsTitle.TagName = "h1"
        newsTitle.ID = "newsTitle" + stri
        Dim newsAnchor As New HtmlControls.HtmlAnchor
        newsAnchor.ID = "newsAnchor" + stri
        newsAnchor.InnerHtml = newsDR("NewsTitle")
        newsAnchor.HRef = "#"

        newsTitle.Controls.Add(newsAnchor)

        Dim newsSummary As New HtmlControls.HtmlGenericControl
        newsSummary.TagName = "div"
        newsSummary.ID = "newsSummary" + stri
        newsSummary.InnerHtml = newsDR("NewsSummary")

        newsListItem.Controls.Add(newsTitle)
        newsListItem.Controls.Add(newsSummary)
        newsList.Controls.Add(newsListItem)
    Next
+5
source share
1 answer

You should not use innerHtml after rendering controls, use RenderControl instead, as indicated here:

http://forums.asp.net/t/1168614.aspx

+2
source

All Articles