度量快速开发平台-专业、快速的软件定制快开平台
标题:
利用DataView的RowFilter实现网格数据动态过滤。
[打印本页]
作者:
张军勇
时间:
2020-3-13 23:37
标题:
利用DataView的RowFilter实现网格数据动态过滤。
首先请大家点开下图,看大图。
112.png
(28.13 KB, 下载次数: 766)
下载附件
保存到相册
2020-3-13 23:25 上传
图中可以看出,我们实现了SQL方式去过滤网格部件的数据,为什么可以采用这种sql的方式来过滤数据呢?网格部件过滤功能不是不支持这种写法吗?
如果你有上面的疑问,那么表示你对网格部件还比较熟悉。接下来,我来讲讲这是为什么:
实际上,我们在窗体中,构建了一个文本输入框,一个搜索按钮和一个清空按钮,来模拟了网格部件的查找面板。结合DataView的RowFilter方法,可以实现SQL查询式的过滤数据(但仅限于本地DataTable中的数据)。
实际上,DataView的RowFilter具有很强的过滤功能,我们在平台网格部件中,只需要对其设置值即可,设置方法为:
网格部件1.DataTable.DefaultView.RowFilter="SQL条件"
复制代码
即可实现DataView的数据过滤。
我在上面窗体中,过滤按钮单击事件中写了以下代码:
通讯录网格.DataTable.DefaultView.RowFilter=过滤文本.Value
复制代码
即模拟出了网格部件的过滤效果,并且比网格部件的过滤功能更加强大,可以支持任意sql过滤条件,如
or
等。
DataView过滤还可以支持null等查询,如
dataView1.RowFilter = " sex is null ";
复制代码
或者将null字段转换为值再对比:
dataView1.RowFilter = " Isnull( sex, '空') = '空' ";
复制代码
值得注意的是:DataView是DateTable相关联 的一个视图而已,无论你如何使用RowFilter,DataView虽然被改变,但 DateTable数据不会减少,所以你不要幻想连续使用多个RowFilter 来得到叠加过滤的效果,一个DataView只支持一个RowFilter,你只能使用 not ,and 来连接多个过滤条件。
作者:
张军勇
时间:
2020-3-13 23:38
国际惯例沙发自己坐。
作者:
张军勇
时间:
2020-3-13 23:42
如果要放弃过滤,显示所有行,则可使用:
dataView1.RowFilter = null;
或者
dataView1.RowFilter = "";
作者:
刘亚东
时间:
2020-3-14 09:37
这个对操作上有很大左右,或者二次开发的时候设置筛选条件也比较方便。
作者:
张兴康
时间:
2020-3-14 14:33
这个功能真心很实用
作者:
万望
时间:
2020-3-14 15:27
请问网格部件自带的属性:查找面板支持这个功能吗?
作者:
王爱东
时间:
2020-3-14 18:23
这个使用以前还没用过呢。
作者:
陈晓龙
时间:
2020-3-14 21:58
有图有真相
作者:
张军勇
时间:
2020-3-14 22:37
偶尔能解决很实际的问题。
作者:
万望
时间:
2020-3-16 15:16
datatable都是相基础的软件开发应用,
作者:
万望
时间:
2020-3-19 21:44
作者:
万望
时间:
2020-3-19 21:46
作者:
万望
时间:
2020-3-19 21:48
作者:
万望
时间:
2020-3-19 21:55
作者:
万望
时间:
2020-4-2 15:06
掌握好了再灵活运用,确实强大
作者:
caixuqad
时间:
2020-4-4 14:39
作者:
caixuqad
时间:
2020-4-10 18:09
作者:
万望
时间:
2020-4-22 23:47
不懂点技术的还是不得行哟
欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://p.delit.cn/)
Powered by Discuz! X3.2