我使用以下代码(代码段)生成了一个表:
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。我知道我可以使用DataList
,DataView
或Repeater
来生成表格,但我不知道如何使用它们,而是宁愿让它工作。
如果不可能以这种方式使用FindControl
,那么我会去解决它们。
答案 0 :(得分:1)
不可能像这样使用FindControl
。 InnerHtml
将不会被解析,转换为Web控件实例并添加到控制树中,因此永远不会找到您的表。