js动态设置restData的filter

在某些场景下需要在js中动态设置filter,可以调用数据组件的setFilter方法实现,然后调用数据集的刷新条件就会起作用

运算符目前支持: 等于eq、不等neq、大于gt、小于lt、大于等于gte、小于等于lte、字符匹配like、字符匹配(不区分大小写)ilike、字符不匹配nlike、字符不匹配(不区分大小写)nilike、包含inn、不包含ninn、为空isNull、非空isNotNull

如下: 1.过滤字段等于一个值用eq:

var data = this.comp("数据集的id");
var filter = [];
filter.push({op:"LBRAC"});
filter.push({name:"fname",value:"张三",op:"eq"});
filter.push({op:"RBRAC"});
data.setFilter("eqfilter",filter);
data.refreshData();

2.过滤字段包含某些值(等同于sql中的in),需要用inn:

var data = this.comp("数据集的id");
var filter = [];
filter.push({op:"LBRAC"});
filter.push({name:"fname",value:"张三,李四",op:"inn"});
filter.push({op:"RBRAC"});
data.setFilter("infilter",filter);
data.refreshData();

3.过滤字段字符匹配用like,不匹配用nlike,如果需要用通配符用*:

var data = this.comp("数据集的id");
var filter = [];
filter.push({op:"LBRAC"});
filter.push({name:"fname",value:"abc*",op:"nlike"});
filter.push({op:"RBRAC"});
data.setFilter("likefilter",filter);
data.refreshData();

4.过滤值为空,需要用isNull

var data = this.comp("数据集的id");
var filter = [];
filter.push({op:"LBRAC"});
filter.push({name:"fname",value:null,op:"isNull"});
filter.push({op:"RBRAC"});
data.setFilter("infilter",filter);
data.refreshData();

5.过滤值非空,需要用isNotNull

var data = this.comp("数据集的id");
var filter = [];
filter.push({op:"LBRAC"});
filter.push({name:"fname",value:null,op:"isNotNull"});
filter.push({op:"RBRAC"});
data.setFilter("infilter",filter);
data.refreshData();

6.日期过滤用gte或者lte

var data = this.comp("数据集的id");
var startDate=new Date();
startDate.setDate(5);
startDate = wx.Date.toString(startDate, wx.Date.STANDART_FORMAT_SHOT);
var endDate = wx.Date.toString(new Date(), wx.Date.STANDART_FORMAT_SHOT);
var filter = [];
filter.push({op:"LBRAC"});
filter.push({name:"fcreateDate",value:startDate,op:"gte"});
filter.push({name:"fcreateDate",value:endDate,op:"lte"});
filter.push({op:"RBRAC"});
data.setFilter("customfilter",filter);
data.refreshData();

7.日期时间过滤用gte或者lte

var data = this.comp("数据集的id");
var endDate = wx.Date.toString(new Date(), wx.Date.STANDART_FORMAT);
var filter = [];
filter.push({op:"LBRAC"});
filter.push({name:"fcreateTime",value:"2020-04-02T00:00:00.000Z",op:"gte"});
filter.push({name:"fcreateTime",value:endDate,op:"lte"});
filter.push({op:"RBRAC"});
data.setFilter("customfilter",filter);
data.refreshData();

8.多个调用用and或者or拼接

var data = this.comp("数据集的id");
var filter = [];
filter.push({op:"LBRAC"});
filter.push({name:"fname",value:"张三",op:"eq",kind:"or"});
filter.push({op:"LBRAC"});
filter.push({name:"fcode",value:"001",op:"eq"});
filter.push({name:"fadress",value:"上海",op:"eq",kind:"or"});
filter.push({op:"RBRAC"});
filter.push({op:"RBRAC"});
data.setFilter("customfilter",filter);
data.refreshData();

9.清除所有的过滤调用

var data = this.comp("数据集的id");
data.filters.clear();
data.refreshData();

10.清空js设置的某个过滤条件

setFilter的第一个参数就是要清空的filter的名字,第二个参数为空

var data = this.comp("数据集的id");
data.setFilter("customfilter","");
data.refreshData();

11.获取所有的过滤条件

var data = this.comp("数据集的id");
data.buildFilter();//返回的是数组

results matching ""

    No results matching ""

    results matching ""

      No results matching ""