在asp.net页面的Literal中查找动态创建的控件



下面是我的代码

--.aspx文件

<div id="testDiv" runat="server"></div>

--.aspx.cs文件

Literal lit1 = new Literal();
lit1.Text = "<table class='allocTable'>";
lit1.Text += "<tr><td><input type='text' runat='server' id='testbox1'></input></td></tr>";
... some other controls <tr><td>...
lit1.Text += "</table>"
testDiv.Controls.Add(lit1);

现在如何在.aspx.cs文件中找到testbox1?我在testDiv和placeHolder上使用了FindControl,但它返回null。

文本框似乎还没有添加到页面控件中,但它们刚刚被呈现出来。

如果您想在返回后获得文本框的值,可以使用Request.Form["testbox1"].

如果你想使用"真正的"服务器控件,你可以在aspx文件中使用asp:Panel,而不是div。然后,在asp.cs Init或Load方法中,将一个HtmlTable添加到Panel.Controls集合,将HtmlTableRow添加到HtmlTable.Rows集合,并将HtmlTableCell添加到LtmlTableRow.Cells集合。

创建要添加到Cell.controls集合的输入控件时,可以将它们存储在私有成员变量中。

最新更新