findcontrol 没有找到动态添加的控件,它只是在之前添加了一行

Eph*_*dra 5 asp.net controls findcontrol

谁能向我解释一下?

CheckBox ckRequest = new CheckBox();
ckRequest.ID = "ckRequest";
ckRequest.DataBinding += new EventHandler(this.CkIsRequested_DataBinding);
container.Controls.Add(ckRequest);
Control con = container.FindControl("ckRequest");
Run Code Online (Sandbox Code Playgroud)

调试显示 con 仍然为空。

调试还向我展示了,conteiner.Controls 有一个 ID 为“ckRequest”的项目

怎么会这样????


非常感谢您的回答。

其实我尝试以下。 findcontrol 没有在 rowUpdating 事件处理程序中找到动态创建的控件 这对我来说很有意义, findcontrol 仅适用于创建的页面。

页面的可视化树是在哪个时间点创建的?

Mas*_*uso 3

FindControl仅当控件位于页面的可视树中时才有效

对于你的情况你可以尝试这个

var checkBoxesInContainer = container.Controls.OfType<CheckBox>();
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/bb360913.aspx