asp.net – 递归控制搜索与LINQ
发布时间:2020-12-15 19:36:58 所属栏目:asp.Net 来源:网络整理
导读:如果我想在ASP.NET页面上找到选中的复选框,我可以使用以下LINQ查询。 var checkBoxes = this.Controls .OfTypeCheckBox() .TakeWhileCheckBox(cb = cb.Checked); 这很好,如果复选框嵌套在当前控件集合,但我想知道如何通过深入到顶层控件的控件集合中扩展
如果我想在ASP.NET页面上找到选中的复选框,我可以使用以下LINQ查询。
var checkBoxes = this.Controls .OfType<CheckBox>() .TakeWhile<CheckBox>(cb => cb.Checked); 这很好,如果复选框嵌套在当前控件集合,但我想知道如何通过深入到顶层控件的控件集合中扩展搜索。 这里问的问题: Finding controls that use a certain interface in ASP.NET 并且收到非LINQ的答案,我已经有我自己的版本的递归控制搜索类型和ID作为扩展方法,但我只是想知道这是多么容易这是做LINQ? 解决方法
从递归中获取类型/ ID检查,所以只需要“给我所有的控件,递归”方法,例如。
public static IEnumerable<Control> GetAllControls(this Control parent) { foreach (Control control in parent.Controls) { yield return control; foreach(Control descendant in control.GetAllControls()) { yield return descendant; } } } 这是有点低效率(在创建大量的迭代器方面),但我怀疑你会有一个非常深的树。 然后,您可以将原始查询写为: var checkBoxes = this.GetAllControls() .OfType<CheckBox>() .TakeWhile<CheckBox>(cb => cb.Checked); (编辑:将AllControls更改为GetAllControls,并将其正确地用作方法。) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – @ Html.ValidationSummary是否适用于MVC3或
- asp.net-mvc – 如何在使用类型化视图时在ActionFilterAttr
- asp.net – repeater或listview vs concatenated html
- asp.net – <%#Eval(“State”)%>或<%#DataBin
- 禁用ASP.NET HttpHandler响应缓存
- ASP.NET MVC 3远程验证
- asp.net – iis表示没有调试的运行站点(即在vs打开时一直运
- asp.net-mvc – MVC网站转发到/ Account / Login,只启用Win
- asp.net-mvc – 在ASP.NET MVC中实现工作单元的方法
- asp.net-mvc-3 – mvc3 – 如何从源代码禁用符号的htmlenco
推荐文章
站长推荐
- Asp.net禁用页面缓存的方法总结
- asp.net-mvc – 将http://mydomain.com/ctrlr/ac
- asp.net – LINQ to SQL执行时间比SSMS SQL长50倍
- ASP.NET MVC 4和Entity Framework 5.0中的MySQL连
- asp.net-mvc – 导航菜单中突出显示在Asp.NET MV
- asp.net-mvc – 在发送到视图之前如何修改控制器
- .net-core – 如何在Asp.net核心中使用Akka.Net
- ASP.NET Web API合同版本控制
- asp.net-mvc – 在父视图顶部的Jquery模态弹出窗
- 在ASP.NET中,什么决定了HostingEnvironment.IsDe
热点阅读