无法通过 HtmlGenericControl 属性将值传递到页面

Cannot pass value to page through HtmlGenericControl Property

提问人:Ursidae 提问时间:8/21/2020 更新时间:8/21/2020 访问量:55

问:

下面是 .aspx 文件

<form id="form1" runat="server">            
    <input type="text" id="StringValue" runat="server"/>
    <datalist id="dataList" runat="server"></datalist>
    <% CreateContent(_sql)%>
</form>

这是.vb文件(CreateContent)

Protected Sub CreateContent(ByVal sql As String)

    Dim optList As New List(Of String)
    optList = GetData(sql)

    Dim table As New DataTable()
    table.Columns.Add(New DataColumn("DataOptions"))
    For Each opt In optList
        table.Rows.Add(opt)
    Next
    For Each row In table.Rows
        dataList.InnerHtml = dataList.InnerHtml & vbCrLf & String.Format("<option value='{0}'>", row(0))
    Next
    MsgBox(dataList.InnerHtml)

End Sub

当我测试页面时,实际上可以显示所有元素。但是,这些内容只能存在于服务器端。 在页面源中始终为空。任何人都可以解释是什么阻止了内容被传递到页面以及如何解决它?MsgBox<option><datalist>

asp.net vb.net innerhtml htmlgenericcontrol

评论

0赞 jmcilhinney 8/21/2020
我自己不使用 Web 窗体,但我认为您不应该设置 .如果你要这样做,控制的意义何在?应添加到属性中,并让控件本身生成相应的 HTML。InnerHtmlDataListItems
0赞 jmcilhinney 8/21/2020
实际上,我刚刚阅读了该控件的文档,它特别指出它是一个数据绑定列表控件,因此您应该将数据绑定到该控件,然后它将通过集合公开绑定的数据,并从中生成相应的 HTML。在我看来,您需要对这种控制的工作原理进行一些研究。DataListItems
0赞 Ursidae 8/21/2020
实际上,有一些消息来源建议我遵循的方式,例如: 链接
0赞 jmcilhinney 8/21/2020
啊,我假设您正在使用 Web 窗体控件,但看起来您可能不是。也许你应该这样做,但是,正如我所说,我不使用 Web 窗体,所以可能有一些我不知道的因素。DataList

答: 暂无答案