最近在使用formview,但是发现有个问题就是无法通过遍历controls获得formview里的控件,但是确可以通过findcontrol方法获取.在formview的controls里只有个一个控件,类型是System.Web.UI.WebControls.ChildTable,根本不是想要的那个controls.于是从findcontrol下手,msdn里说的是从namingcontainer里查找控件,既然查找估计也是用遍历的方式.那么就必须找到所需要控件的那个namingcontainer.获得的方法很简单,那就是显示findcontrol找到一个控件,比如txtName,然后获取txtName的Parent也就是我们要的namingcontainer.而这时的namingcontainer所包含的controls就是我们想要的那个,之后的操作就简单拉.
代码如下
遍历formview
1// fv 是formview实例
2 WebControl txtName = (WebControl)fv.FindControl("txtName");
3
4 // 从parent中获取Controls
5 ControlCollection ctls = txtName.Parent.Controls;
6
7 foreach (Control ctl in ctls)
8 {
9 //..
10 }