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, DataViewRepeater来生成表,但我不知道如何使用它们,宁愿让它工作。如果不可能使用FindControl这种方式,那么我将只是去找出他们。

FindControl总是在动态生成的表上返回null

这样使用FindControl是不可能的。InnerHtml将不会被解析,转换为web控件实例并添加到控件树中,因此您的表将永远不会被发现。