FindControl总是在动态生成的表上返回null
本文关键字:返回 null 动态 FindControl | 更新日期: 2023-09-27 18:13:35
我使用以下代码(代码片段)生成了一个表:
String sTable = "<table id='"ediTable'" runat='"server'">'n" +
"...'n" +
"</table>'n";
table_display.InnerHtml = sTable;
table_win.Style.Add("display", "block");//show table
然后,在我的代码后面,尝试使用FindControl()
方法找到这个表,如下所示:
protected void SubmitTable(object sender, EventArgs e)
{
Control ctrl = table_display.FindControl("ediTable");
}
这是我的相关html:
...
<div id="table_display" runat="server">
</div>
<asp:Button ID="submitReport" CssClass="submit_btn" runat="server" Text="Submit" OnClick="SubmitTable" />
...
ctrl
总是空的,当我通过我的代码,尽管事实上table_display仍然包含html表。我知道我可以使用DataList
, DataView
或Repeater
来生成表,但我不知道如何使用它们,宁愿让它工作。如果不可能使用FindControl
这种方式,那么我将只是去找出他们。
这样使用FindControl
是不可能的。InnerHtml
将不会被解析,转换为web控件实例并添加到控件树中,因此您的表将永远不会被发现。