找不到添加到面板服务器端的面板

Cannot find Panel added to Panel serverside

我正在向 Panel 服务器端添加一个 Panel,然后尝试使用 FindControl 访问第二个面板,但它 returns null - 谁能告诉我我缺少什么?

Panel p1 = new Panel();
Panel p2 = new Panel();
p2.ID = "Panel2";
p1.Controls.Add(p2);
// This returns null
Panel tempPanel = (Panel)p1.FindControl("Panel2");

我可以在 'Watch' window 中看到 p2 已添加并且 ID 为 'Panel2'。 FindControl returns null

当您在页面上添加父控件时,查找控件将起作用。

试试这个

Panel p1 = new Panel();
Panel p2 = new Panel();
Panel p3 = new Panel();
Panel p4 = new Panel();
Panel p5 = new Panel();
p2.ID = "Panel2";
p3.ID = "Panel3";
p4.ID = "Panel4";
p5.ID = "Panel5";
p1.Controls.Add(p2);
p1.Controls.Add(p3);
p1.Controls.Add(p4);
p1.Controls.Add(p5);

//Add Parent Panel on Page
this.Controls.Add(p1);

Panel tempPanel = p1.FindControl("Panel2") as Panel;