ASP.Net / C#,循环访问页面上的某些控件?
我当前正在循环访问页面上的所有控件,并在某些条件下将某些类型(TextBox、CheckBox、DropDownList 等)设置为 Enabled=False。 但是我注意到明显的页面加载增加循环如下。是否可以仅从 Page.Controls 对象获取某些类型的控件,而不是循环遍历所有控件?可能是像 LINQ 这样的东西?
I am currently looping through all the controls on my page and setting certain types (TextBox, CheckBox, DropDownList, etc.) to Enabled=False under certain conditions.
However I notice an obvious page load increase looping like this. Is it possible to only get certain types of controls from the Page.Controls object rather than Loop through them all? Possibly with something like LINQ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这不能完全使用 LINQ 完成,但您可以像这样定义扩展
并调用
This cannot be done entirely using LINQ but you could have an extension defined like this
and call
您可以循环遍历所有控件(嵌套控件):
然后只需使用以下命令初始调用它即可禁用:
You could loop through all the control (an nested ones):
Then just call it initally with the following to disable:
我喜欢此链接中的解决方案 LINQ 相当于 IEnumerable的 foreach
对我来说效果很好!
您可以使用像这样的 linq 查询来进行控件的迭代,
这里 BaseUserControl 是我所有控件都使用的基类,您可以在这里很好地使用 Control 本身,并且扩展方法允许您组合迭代和执行。
I like the solution in this link LINQ equivalent of foreach for IEnumerable<T>
Worked quite well for me!
You can do the iteration of controls using a linq query like
Here BaseUserControl is a base class which all my controls use, you could very well use Control itself here, and the extension method allows you to club iteration and execution.