我是.Net平台的新手,自从两天以来我一直在从.aspx页面检索控件.
我试图从我的网站的所有.aspx页面获取所有控件.
因此,我从我从数据库中获取的类名字符串创建了Page的对象.我已经将.aspx.cs文件的类名存储在数据库中
C#中的代码是:
Page obj = (Page)Activator.CreateInstance(null,string ClassName).Unwrap();
字符串“ClassName”取自数据库.
现在在调试期间我可以看到obj中有控件但是我在controls.count中得到0.我想这是因为控件仍未初始化.
调试时的图像1:
在调试时显示我的控件的图像2
我的代码看起来像这样.
Page obj = (Page)Activator.CreateInstance(null,string ClassName).Unwrap() List<string[]> fieldsnotinDB = GetControlCollections(obj)
public List<string[]> GetControlCollections(Page p) { List<string[]> controlList = new List<string[]>(); IterateControls(p.Controls,controlList); return controlList; } public void IterateControls(System.Web.UI.ControlCollection page,List<string[]> controlList) { foreach (System.Web.UI.Control c in page) { if (c.ID != null) { string []s=new string[2]; s[0]=c.ID; s[1]=c.GetType().ToString(); controlList.Add(s); } if (c.HasControls()) { IterateControls(c.Controls,controlList); } } }
如何从我的obj获取控件?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。