起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5160|回复: 18

[处理中1] fiter问题

[复制链接]

18

主题

49

帖子

167

积分

初级会员

Rank: 2

积分
167
QQ
发表于 2016-9-8 23:33:24 | 显示全部楼层 |阅读模式
本帖最后由 kevin0753 于 2016-9-9 09:55 编辑

json文件 数据是:
{"fID":"004","fOneID":"002","fTitle":"1","fImg":"./img/a4.jpg","fPrice":"1000","fSatisfaction":"线上预约"},
{"fID":"003","fOneID":"001","fTitle":"2","fImg":"./img/a3.jpg","fPrice":"1000","fSatisfaction":"预约有优惠"},
{"fID":"002","fOneID":"001","fTitle":"3","fImg":"./img/a9.jpg","fPrice":"1000","fSatisfaction":""},


.w文件 里面是:

list显示是这样的。(仿途牛的)
<div component="$UI/system/components/justep/list/list" class="x-list" xid="list1" data="productData">  
我想改成。
<div component="$UI/system/components/justep/list/list" class="x-list" xid="list1" data="productData" filter="$row.val(“fOneID”)= 【这里是1个动态数值,比如 dqID】”>
通过 点击菜单 变化数值。实现列表的筛选变化
<a component="$UI/system/components/justep/button/button" class="btn btn-link" label="安阳" xid="button4" bind-click="MenuClick">


js里面是:

//点击 安阳
Model.prototype.MenuClick = function(event){
  dqID = 001 (这里赋值数值)
};


红色的代码具体应该怎么写。。。写了好多,总是出错。提问就放了思路,求助。。感谢

65

主题

315

帖子

851

积分

高级会员

Rank: 4

积分
851
发表于 2016-9-9 10:04:35 | 显示全部楼层
可以直接在MenuClick中写
  1. productDatasetFilter("filter","fOneID = '"+dqID+"'");
  2. productData.refresh();
复制代码
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-9-9 11:26:27 | 显示全部楼层
对,可以参考楼上代码,先手动过滤,点击之后,先过滤数据,改变data 然后在刷新data,让过滤之后的data显示出来
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

18

主题

49

帖子

167

积分

初级会员

Rank: 2

积分
167
QQ
 楼主| 发表于 2016-9-9 11:44:28 | 显示全部楼层
你好,productDatasetFilter is not defined

productDatasetFilter 需要定义成什么

productDatasetFilter("filter","fOneID = '"+dqID+"'");

比如筛选 fOneID 数据是001的(Integer类型),productDatasetFilter("filter","fOneID = '001'");  这样可以吗?
回复 支持 反对

使用道具 举报

18

主题

49

帖子

167

积分

初级会员

Rank: 2

积分
167
QQ
 楼主| 发表于 2016-9-9 12:00:05 | 显示全部楼层
闰土 发表于 2016-9-9 11:26
对,可以参考楼上代码,先手动过滤,点击之后,先过滤数据,改变data 然后在刷新data,让过滤之后的data显 ...

你好,productDatasetFilter is not defined

productDatasetFilter 需要定义成什么

productDatasetFilter("filter","fOneID = '"+dqID+"'");

比如筛选 fOneID 数据是001的(Integer类型),productDatasetFilter("filter","fOneID = '001'");  这样可以吗?
回复 支持 反对

使用道具 举报

18

主题

49

帖子

167

积分

初级会员

Rank: 2

积分
167
QQ
 楼主| 发表于 2016-9-9 12:00:54 | 显示全部楼层
我是小菜鸡 发表于 2016-9-9 10:04
可以直接在MenuClick中写

你好,productDatasetFilter is not defined

productDatasetFilter 需要定义成什么

productDatasetFilter("filter","fOneID = '"+dqID+"'");

比如筛选 fOneID 数据是001的(Integer类型),productDatasetFilter("filter","fOneID = '001'");  这样可以吗?
回复 支持 反对

使用道具 举报

65

主题

315

帖子

851

积分

高级会员

Rank: 4

积分
851
发表于 2016-9-9 12:41:04 | 显示全部楼层
kevin0753 发表于 2016-9-9 12:00
你好,productDatasetFilter is not defined

productDatasetFilter 需要定义成什么

漏了一个符号
productData.setFilter("filter","fOneID = '"+dqID+"'");
productData.refresh();
回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-9-9 13:45:24 | 显示全部楼层
setFilter
void setFilter(string name, string filter)
设置指定名称的过滤表达式,所有的过滤将按and连接

> 参数

name:[string]过滤名称,必填。
filter:[string]必填,过滤表达式,标准的KSQL语法,如:SA_OPPerson.sName like ‘%李%’

例如代码:
  1. var data = this.comp('mainData');
  2. data.setFilter('filter1',"SA_OPPerson.sName like '%李%'");
  3. data.setFilter('filter2',"SA_OPPerson.sCode = :operatorCode() or SA_OPPerson.sCode = :code");
复制代码
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

18

主题

49

帖子

167

积分

初级会员

Rank: 2

积分
167
QQ
 楼主| 发表于 2016-9-9 14:54:50 | 显示全部楼层
闰土 发表于 2016-9-9 13:45
setFilter
void setFilter(string name, string filter)
设置指定名称的过滤表达式,所有的过滤将按and连接 ...





        //点击 安阳
        Model.prototype.MenuClick = function(event){
             //var data = this.comp('productData');
        productData.setFilter("filter","fOneID = '001'");
        productData.refresh();
        };





提示:productData is not defined


你好,productData 应该怎么定义呢?


.w中是
    <!-- 加载列表数据  -->   
    <div component="$UI/system/components/justep/data/data" autoLoad="true"
      xid="productData" idColumn="fID">
      <column label="id" name="fID" type="String" xid="xid1"></column>
      <column label="父级ID" name="fOneID" type="Integer" xid="column3"></column>
      <column label="标题" name="fTitle" type="String" xid="xid2"></column>
      <column label="图片" name="fImg" type="String" xid="xid3"></column>
      <column label="价格" name="fPrice" type="Float" xid="xid4"></column>
      <column label="优惠" name="fSatisfaction" type="Integer" xid="xid5"></column>
      <rule xid="rule2"></rule></div>   
  </div>  

回复 支持 反对

使用道具 举报

1

主题

3232

帖子

1174

积分

金牌会员

Rank: 6Rank: 6

积分
1174
QQ
发表于 2016-9-9 14:56:41 | 显示全部楼层
productData 这个是什么?是一个Data组件嘛 。直接 this.comp("productData "),不就可以获取到这个Data了
在问题解决后,希望大家可以吧解决方法也分享一下,这样可以让更多的X5开发者共同进步,谢谢大家的知识共享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-9-28 15:18 , Processed in 0.110449 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表