jQuery MiniUI

标题: datagrid 过滤行 多列过滤 获取值的方法 [打印本页]

作者: ming    时间: 2014-2-13 15:25:54     标题: datagrid 过滤行 多列过滤 获取值的方法

多列过滤:

[attach]3911[/attach]

用统一的方法来进行查询:
官方单个查询方法:
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)});



作者: ming    时间: 2014-2-13 16:03:13

也就是说,把这个datagrid上的所有property="filter"的控件拿到,
循环取填入的值,然后拼接 查询条件...

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

id是都知道的,但是如果用id的话,就写死了...
作者: felt    时间: 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"})进行查询
作者: ming    时间: 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就好了。
作者: ming    时间: 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),找到多个

应该可行吧

作者: factory    时间: 2014-2-13 16:31:11

ming 发表于 2014-2-13 16:18
多条件查询是我这边写的,

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

给个相同的name, mini.getsbyName()
作者: ming    时间: 2014-2-13 16:32:56

factory 发表于 2014-2-13 16:31
给个相同的name, mini.getsbyName()

恩,

这个还要在datagrid内,

mini.getsbyName(name, parent)
这个有例子吗?
parent是一个什么对象?jquery?还是miniui的?
作者: felt    时间: 2014-2-13 16:41:46

ming 发表于 2014-2-13 16:32
恩,

这个还要在datagrid内,

miniui对象,你在grid里话可以用grid
作者: ming    时间: 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());
            });



作者: factory    时间: 2014-2-13 17:16:05

ming 发表于 2014-2-13 16:46
谢谢。

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






欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2