我希望我可以访问ASP.Net页面(HTML元素)的所有元素并操纵其文本属性/值。我怎么能这样做?ASP.Net - 循环当前页面中的所有HTML组件
我一直在检查,属性this.Page.Form.Controls显然获取所有元素,但我只会页面元素,捕捉事件。有人有什么主意吗。
我会举一个我正在学习的代码示例,并根据我的需要尝试adalter。
感谢
string x = String.Empty;
string y = String.Empty;
foreach (Control ctrl in this.Page.Form.Controls){
if (ctrl is TextBox){
x += ((TextBox)(ctrl)).ID + ((TextBox)(ctrl)).Parent + "\n";
} else {
y += ctrl.GetType().Name + ctrl.GetType().Namespace + "\n";
}
}
实验值:我使用的是Telerik的组件的一些部件。
我不认为你想要达到什么从你的问题是明显的。你谈论的是过滤出引发事件的元素* - 什么事件?你也可以说你想要这样做来操作Text属性,但是你的代码似乎并不涉及任何这些。另外,注意:'Form.Controls'不会递归地给你一个页面的所有元素,也就是说,如果有一个拥有'.Controls'的PlaceHolder,'Form.Controls'只会产生PlaceHolder。 – 2010-07-12 18:38:23
在上面的例子中,我只是想读取组件的ID,以便找到完美的代码来获得我想要的东西。简而言之,我搜索表单的所有对象。当我得到它,并以某种方式了解每个元素的类型时,我可以修改编程来处理每个元素。谢谢 – 2010-07-12 18:42:31
我仍然不认为问题是清楚的。如果你想要做的就是找到表单中的所有控件,那么你想要的是多少“this.Page.Form.Controls”(不管我之前提到的递归问题,因为这似乎不是一个中心问题你的关注)?如果你想*以某种方式了解每种类型的*,那么这就是你在你的例子中所做的事情,通过用于测试类型的“TextBox”或用于测试类型的“GetType()”来简单地检索键入... – 2010-07-12 18:47:27