asp.net - 在点击事件上过滤数据源
问题描述
我有一个在 Page_Load 上指定的数据源:
// EmpDetailsList query to get employee data
EmpGridView.DataSource = EmpDetailsList
EmpGridView.DataBind()
当用户单击按钮时,我正在尝试过滤数据源;
Protected Sub Search_btn_Click(sender As Object, e As EventArgs) Handles Search_btn.Click
FilteredList = EmpDetailsList.Where(EmpDetailsList.FirstName= "John")
EmpGridView.DataSource = FilteredList
EmpGridView.DataBind()
End Sub
如果不使用EmpDetailsList作为全局变量,我会遇到很多麻烦。
我也不想违反 DRY 原则,在单击搜索按钮时再次调用数据源。我还尝试将EmpDetailsList作为参数传递给另一个 Sub,但我不明白如何将它与 click 事件处理程序一起使用。
任何建议都会有所帮助,我已经找了几个小时,但我没有找到任何不使用全局变量的东西。
解决方案
该Where
函数需要一个谓词。.ToList
在末尾添加 a ,这样您就有 aList(Of T)
而不是IEnumerable
.
Protected Sub Search_btn_Click(sender As Object, e As EventArgs) Handles Search_btn.Click
Dim FilteredList = (EmpDetailsList.Where(Function(e) e.FirstName = "John")).ToList
EmpGridView.DataSource = FilteredList
EmpGridView.DataBind()
End Sub
推荐阅读
- javascript - fabric.js 2.4 导入 SVG,如何获取相对于画布的实际路径?
- python - Matplotlib 使用多行动画子图
- php - 带有数组函数和数据库的php路由
- android - 错误:处理清单 android studio 失败
- jmeter - Jmeter:在 SMTP 消息正文中打印线程属性
- python - 对复制列表的输出感到困惑
- object - 映射函数及其返回值
- android - 编译 NDKr12b - 尝试从 Eigen 库编译 Matrix.h 时遇到问题
- python - 什么情况下报错?“Scipy.optimize”:'Desired error不一定能达到,因为精度损失'
- excel - 用 Excel 中的新单词库系统地替换纯 txt 中的所有单词