【发布时间】:2018-07-15 16:33:28
【问题描述】:
我必须在绑定列表的网格中显示数据
BindingList<ExecutionSummaryData> ExecutionList
grid.DataSource = ExecutionList;
其中ExecutionSummaryData 包含Name, Age, Address 等属性(例如)。
现在通过一个winform,当用户选择某些名称、年龄或其他参数时,我必须从ExecutionList 中选择数据,并且必须将过滤后的数据绑定到我的网格。
我能否以某种方式将此查询绑定到
ExecutionList,以便每次查询字符串更改时ExecutionList都会绑定到网格并显示过滤后的数据?我能否将通过过滤器字符串从
ExecutionList检索到的任何子列表绑定到我的网格,并且对于每个过滤器查询更改,它将从ExecutionList获取数据并相应地显示。- 我不想在每个过滤器上清除数据并将数据重新填充到
ExecutionList,因为该网格将实时更新大约 10-20 百万条记录。
编辑我的要求
请建议在此ExecutionList 上使用 Linq 查询或 Lambda 表达式的语法来获取过滤记录。
过滤器查询将包括条件与多个实体进行比较和从列表中获取
像“
Select * from
ExecutionListwhere name in('N1','N2','N3',,,,'N90')" AND AGE in ('A1','A2','A3',,,,'A90')
请建议我如何实现这一目标?根据回复,我将使用缺少/必需的信息更新我的问题。
谢谢,
阿什
【问题讨论】:
-
不要拨打
DataGridViewaGridView或DataGrid,反之亦然!!这是错误且令人困惑的,因为它们是不同的控件。总是用正确的名字来称呼事物! -
10-20 百万条记录 真的吗?听起来很疯狂。我认为您应该重新考虑 dbms 级别的设计和过滤器,而不是将这些数字泵送到客户端。您尝试使用 Filter 属性做什么?您可以在 TextBox 的 TextChanged 事件中更改它..
-
@TaW 注意控制调用。没有 RDBMS 参与其中,因为我正在从 redis(内存数据库)中检索数据并订阅它的频道,在那里我将获得更新和以毫秒为单位的新记录。
-
@AshishJaiswal - 那么为什么不用提供的过滤器从 redis 中检索数据呢?
-
如果用户一次只能看到 50 条记录,为什么还需要保留 10-20 百万条记录并过滤它们?