我的HTML代码中有我的文字。
<tbody>
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</tbody>
在我的VB代码中,我告诉它创建一个asp:checkbox:
Protected Sub Page_LoadComplete(sender As Object, e As System.EventArgs) Handles Me.LoadComplete
Literal1.Text &= "<tr>" &
"<td>" & MyDataReader(0) & "</td>" &
"<td>" & MyDataReader(1) & "</td>" &
"<td>" & MyDataReader(2) & "</td>" &
"<td>Files Go Here</td>" &
"<td><asp:CheckBox ID=""CheckBox" & MyDataReader(0) & """ runat=""server"" /></td></tr>"
我的问题是加载后复选框没有出现在页面上,其他一切都没有。我查看页面的源代码,asp:复选框位于表中的源代码中,但不会显示在网页本身上。我可以放入一个非asp:复选框:<input id="Checkbox1" type="checkbox" />
,它会显示出来。文字在<form id="form1" runat="server">
内。有什么建议吗?
答案 0 :(得分:1)
处理器呈现asp:checkbox
。你不能把它插入到文字中。您可以创建new CheckBox()
并将其添加到Placeholder
控件。
例如:
CheckBox chk = new CheckBox()
chk.ID = "CheckBox" + MyDataReader(0)
placeholder.Controls.Add(chk)
答案 1 :(得分:1)
尝试添加runat =“server”作为属性。
那是
<input id="Checkbox1" type="checkbox" runat="server" />
另外,查看此论坛帖子: http://forums.asp.net/t/1676105.aspx/1
答案 2 :(得分:0)
我认为问题是你的控件被添加为文本而不是渲染控件。 ASP.NET处理页面并在呈现页面之前用“runat ='server'”替换标记。我认为你输出的文字带有无效的标记,因此没有任何显示。
您可以使用的一个选项是将表创建为ASP.NET表,然后通过代码隐藏添加控件。
未经测试的代码看起来像这样:
Dim table myTable as table
Dim tableRow tr as new TableRow
Dim cell as new TableCell
cells.controls.Add(new CheckBox("values","here")) 'Pseudo code here
tr.Cells.Add(cell)
table.Rows.Add(tr)
或者您可以通过简单的方式完成并将“runat = server”添加到您的表格中。