jQuery MiniUI

 找回密码
 立即注册
查看: 10470|回复: 9
打印 上一主题 下一主题

datagrid 过滤行 多列过滤 获取值的方法 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2014-2-13 15:25:54 |只看该作者 |倒序浏览
多列过滤:



用统一的方法来进行查询:
官方单个查询方法:
function onNameFilterChanged(e) {    var textbox = e.sender;    var key = textbox.getValue();    grid.load({ key: key });}

如果想获取过滤行的数据,以便方便我多条件查询呢?
var filter = [{field:"TITLE",op:"cn",data:value}];//这里只是拼接了一个条件
document_miniuigrid.load({filters:mini.encode(filter)});


附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 3Rank: 3

沙发
发表于 2014-2-13 16:03:13 |只看该作者
也就是说,把这个datagrid上的所有property="filter"的控件拿到,
循环取填入的值,然后拼接 查询条件...

就是取这个datagrid上的所有property="filter"的控件的方法,

id是都知道的,但是如果用id的话,就写死了...

Rank: 8Rank: 8

板凳
发表于 2014-2-13 16:11:55 |只看该作者
ming 发表于 2014-2-13 16:03
也就是说,把这个datagrid上的所有property="filter"的控件拿到,
循环取填入的值,然后拼接 查询条件...

目前grid的默认过滤只能过滤一个字段
你要多字段的话可以想这个例子的查询一样
http://www.miniui.com/demo/#src=datagrid/datagrid.html
在外面输入查询条件来调用grid.load({a:"xx",b:"xx"})进行查询

Rank: 3Rank: 3

地板
发表于 2014-2-13 16:18:03 |只看该作者
felt 发表于 2014-2-13 16:11
目前grid的默认过滤只能过滤一个字段
你要多字段的话可以想这个例子的查询一样
http://www.miniui.com/de ...

多条件查询是我这边写的,

首行过滤,我也是用grid.load({a:'x',b:'y'})

但是监听每个控件改变的时候,

我需要获取datagrid所有的property="filter"的控件,然后我自己拼接就好了。

关键是怎么拿到property="filter"的方法,有标准写法吗?
比如说:grid.getFilterControl() 这样,我自己循环去拿控件getValue就好了。

Rank: 3Rank: 3

5#
发表于 2014-2-13 16:29:36 |只看该作者
这样只能通过name进行查找了
<input id="TITLEFilter" name="mini-column-filter" property="filter" class="mini-textbox" onvaluechanged="onFilterChanged" style="width:100%;" />


mini.getsbyName(name, parent),找到多个

应该可行吧

Rank: 8Rank: 8

6#
发表于 2014-2-13 16:31:11 |只看该作者
ming 发表于 2014-2-13 16:18
多条件查询是我这边写的,

首行过滤,我也是用grid.load({a:'x',b:'y'})

给个相同的name, mini.getsbyName()

Rank: 3Rank: 3

7#
发表于 2014-2-13 16:32:56 |只看该作者
factory 发表于 2014-2-13 16:31
给个相同的name, mini.getsbyName()

恩,

这个还要在datagrid内,

mini.getsbyName(name, parent)
这个有例子吗?
parent是一个什么对象?jquery?还是miniui的?

Rank: 8Rank: 8

8#
发表于 2014-2-13 16:41:46 |只看该作者
ming 发表于 2014-2-13 16:32
恩,

这个还要在datagrid内,

miniui对象,你在grid里话可以用grid

Rank: 3Rank: 3

9#
发表于 2014-2-13 16:46:26 |只看该作者
felt 发表于 2014-2-13 16:41
miniui对象,你在grid里话可以用grid

谢谢。

试了一下,完整例子,供参考:

过滤控件,同样的name:
<input id="CREATETIMEFilter" name="mini-column-filter" property="filter" class="mini-datepicker" style="width:100%;" />

var document_miniuigrid = mini.get("document_miniuigrid");
var filter_controls = mini.getsbyName("mini-column-filter",document_miniuigrid);
            
            $.each(filter_controls,function(i,item){
                    alert(item.getValue());
            });


Rank: 8Rank: 8

10#
发表于 2014-2-13 17:16:05 |只看该作者
ming 发表于 2014-2-13 16:46
谢谢。

试了一下,完整例子,供参考:

Archiver|普加软件

GMT+8, 2025-7-14 04:30 , Processed in 1.036665 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部