前一段时间遇到一个问题:获取页面上所有文本框的值,
记得以前在WinForm可以通过 this.Controls 获取窗体上所有的控件,然后通过GetType()获取它的名称,
这样就可以批量操作某一类型控件了。
可是在WebForm模式下,根本不行,调试了一下,才发现Page.Controls中根本不包含要找的控件,这里面
的值如图所示:
根据上面的图分析可以知道:索引0到2的元素是页面上的head部分,
索引3才是Form元素,我们查找的控件就在里面,具体示例如下:
- foreach (Control c in Page.Controls[3].Controls)
- {
- if (c.GetType().Name == "TextBox")
- {
- TextBox t = c as TextBox;
- t.ForeColor = System.Drawing.Color.Red;
- t.Text = "我是文本框";
- }
- }
这样就可以查询页面上所有的文本框,其它操作就不用说了。