不显示文字中的asp:复选框。 ASP.NET

时间:2012-07-23 18:01:32

标签: asp.net checkbox literals

我的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">内。有什么建议吗?

3 个答案:

答案 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”添加到您的表格中。