asp.net - findcontrol 找不到动态添加的控件,该控件之前只是添加了一行

标签 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");

调试显示 con 仍然为 null。

调试还显示,conteiner.Controls 有一个 ID 为“ckRequest”的项目

怎么会这样????

<小时/>

非常感谢您的回答。

实际上我尝试了以下方法。 findcontrol does not find dynamically created control in rowUpdating eventhandler 对我来说这是有道理的,findcontrol 仅适用于创建的页面。

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

最佳答案

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

根据你的情况,你可以尝试这个

var checkBoxesInContainer = container.Controls.OfType<CheckBox>();

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

关于asp.net - findcontrol 找不到动态添加的控件,该控件之前只是添加了一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14873069/

相关文章:

javascript - Angularjs http post 到 c# 不起作用

c# - 使用手动数据绑定(bind)在 Formview 中检索键和新值

c# - 如何在c#.net中通过ClientID查找控件?

c# - 避免在 LINQ 查询中双重控制搜索

c# - 在 Microsoft.Azure.Cosmos.Table 中使用 TableEntity.Flatten 的正确方法是什么?

asp.net - StaticMenuItemStyle 与 StaticSelectedStyle - 一个会覆盖另一个吗?

c# - 将代码从 Java 转换为 C#/ASP.NET

c# - Windows 窗体控件如何知道其窗体何时被(取消)激活?

c# - 如何设置哪个控件在应用程序启动时获得焦点

wpf - 更改按钮图像问题