C# 在动态HTML表中查找动态控件

C# 在动态HTML表中查找动态控件,c#,asp.net,C#,Asp.net,我试图在动态HTML表中找到一个动态控件。我有以下资料: System.Web.UI.HtmlControls.HtmlTableRow TR = null; System.Web.UI.HtmlControls.HtmlTableCell TD1 = null; System.Web.UI.HtmlControls.HtmlTableCell TD2 = null; System.Web.UI.HtmlControls.HtmlTableCell TD3 = null; System.Web.

我试图在动态HTML表中找到一个动态控件。我有以下资料:

System.Web.UI.HtmlControls.HtmlTableRow TR = null;
System.Web.UI.HtmlControls.HtmlTableCell TD1 = null;
System.Web.UI.HtmlControls.HtmlTableCell TD2 = null;
System.Web.UI.HtmlControls.HtmlTableCell TD3 = null;
System.Web.UI.HtmlControls.HtmlTableCell TD4 = null;
System.Web.UI.HtmlControls.HtmlTableCell TD5 = null;
System.Web.UI.HtmlControls.HtmlTableCell TD6 = null;

// Database stuff
int i = 1;
while (objRdr.Read())
{
    TR = new System.Web.UI.HtmlControls.HtmlTableRow();
    TD1 = new System.Web.UI.HtmlControls.HtmlTableCell();
    TD2 = new System.Web.UI.HtmlControls.HtmlTableCell();
    TD3 = new System.Web.UI.HtmlControls.HtmlTableCell();
    TD4 = new System.Web.UI.HtmlControls.HtmlTableCell();
    TD5 = new System.Web.UI.HtmlControls.HtmlTableCell();
    TD6 = new System.Web.UI.HtmlControls.HtmlTableCell();

    // ASP code maybe wrong, but its to give you the ID.
    TD1.InnerHtml = "<asp:RadioButton runat='server' ID='radApprove"+i.ToString()+"' Value='Approve' />";
    TD2.InnerText = HttpUtility.HtmlEncode(objRdr[1].ToString());
    TD3.InnerText = HttpUtility.HtmlEncode(objRdr[6].ToString());
    TD4.InnerText = HttpUtility.HtmlEncode(objRdr[2].ToString());
    TD5.InnerText = HttpUtility.HtmlEncode(objRdr[10].ToString());
    TD6.InnerText = HttpUtility.HtmlEncode(objRdr[8].ToString());

    TR.Cells.Add(TD1);
    TR.Cells.Add(TD2);
    TR.Cells.Add(TD3);
    TR.Cells.Add(TD4);
    TR.Cells.Add(TD5);
    TR.Cells.Add(TD6);

    tblOrderItems.Rows.Add(TR);
    TR = null;
    TD1 = null;
    TD2 = null;
    TD3 = null;
    TD4 = null;
    TD5 = null;
    TD6 = null;
    i++;
}
但这将返回一个
null
。我还尝试迭代表中的行,但它只指示1行,这就是标题。这段代码是从加载页面调用的,所以我想我可以得到这些控件。当我在呈现页面后查看页面的HTML源代码时,我可以看到它们已正确呈现。有什么想法吗?

这个.FindControl(“radApprove1”);仅检查主INamingContainer中的控件。 您需要递归地查找它,或者执行以下操作:

伪:

foreach row in a table.Rows
  foreach cell in row
    cell.FindControl()
TD1.InnerHtml=”


希望这能有所帮助。

您介意为radApprove提供哪些内容吗?我介意吗?您不介意:您有什么理由不想使用“友好的数据绑定”吗控件,例如中继器或数据网格?我曾与
控件发生过冲突,感觉我总是很放松:-/不知道我键入了什么lol,我的意思是你介意发布渲染的内容吗。当你说“渲染了什么”时,你是在要求输出吗?正如我在问题中提到的,我已经尝试过了,表中显示有一行是列标题。
foreach row in a table.Rows
  foreach cell in row
    cell.FindControl()
TD1.InnerHtml = "<asp:RadioButton runat='server' ID='radApprove"+i.ToString()+"' Value='Approve' />"