我是 .Net 平台的新手,两天以来我一直在从 .aspx 页面检索控件。
我正在尝试从我网站的controls
所有页面中获取所有内容。.aspx
因此,为此我从我的数据库中获得的类名字符串创建了 Page 的对象。我已经将 class names
.aspx.cs 文件存储在数据库中
C#中的代码是:
Page obj = (Page)Activator.CreateInstance(null, string ClassName).Unwrap();
该字符串"ClassName"
取自数据库。
现在在调试期间,我可以看到有controls
,obj
但我进入0
了controls.count
. 我猜这是因为控件还在not initialized
。
调试期间的图像 1:
调试期间的图 2 显示了我的控件
我的代码看起来像这样。
Page obj = (Page)Activator.CreateInstance(null, string ClassName).Unwrap()
List<string[]> fieldsNotInDB = GetControlCollections(obj)
这是我function
从controls
Page 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);
}
}
}
我如何Controls
从我的obj
?