FindControl始终在动态生成的表上返回null

时间:2013-05-14 13:17:19

标签: c# asp.net

我使用以下代码(代码段)生成了一个表:

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" />
...
尽管table_display仍然包含html表,但当我单步执行代码时,

ctrl始终为null。我知道我可以使用DataListDataViewRepeater来生成表格,但我不知道如何使用它们,而是宁愿让它工作。 如果不可能以这种方式使用FindControl,那么我会去解决它们。

1 个答案:

答案 0 :(得分:1)

不可能像这样使用FindControlInnerHtml将不会被解析,转换为Web控件实例并添加到控制树中,因此永远不会找到您的表。