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

QQ登录

只需一步,快速开始

查看: 2503|回复: 6

[结贴] 两个select组件关联数据显示有误

[复制链接]

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
发表于 2016-8-26 17:17:30 | 显示全部楼层 |阅读模式
给的记账本demo中,记一笔功能未做类型(收入、支出)和具体分类的关联,就是说选择收入和选择支付在分类的select里没有影响,但在分类设置里面这两者是有关联的,分类要么是收入,要么是支出,这个和分类设置里面的对应。我想在记一笔功能里增加类型和分类 的对应关系,通过类型的click事件增加分类关联data的filter,然后刷新,这样在选分类的时候可以跟类型对应,但有一个问题:点完分类如果再次点选类型,那么分类组件里的内容项会是配置好的收入或支出的分类+上次点选的分类项。具体情况如下图:图1中选择收入,会出现配置好的3项具体分类,我选择奖金后重新点击类型选支出,正常支出应该是购物、水费两项,但页面显示的时候会把上次选的奖金也带上了,这是什么原因呢??我在类型组件的单击事件中如果使用this.comp("select2").Init();方法页面会报错,但显示效果就正常了,不会出现上次点选的项,这个要怎么解决?

1

1

2

2
传说中路过
发表于 2016-8-26 18:08:15 | 显示全部楼层
可以看下组件提供的案例:http://docs.wex5.com/comps-select/
有关于级联下拉的做法!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2016-8-27 10:26:57 | 显示全部楼层
liangyongfei 发表于 2016-8-26 18:08
可以看下组件提供的案例:http://docs.wex5.com/comps-select/
有关于级联下拉的做法! ...

        Model.prototype.select1Change = function(event) {

                this.comp("classData").refreshData();
        };

        Model.prototype.classDataCustomRefresh = function(event) {

                var data = event.source;
                var vtype = this.comp("accountData").getValue('ftype');
                alert(vtype);
                 //此参数传递后台,作为过滤条件查询
                 var params = {
                 "columns" : justep.Baas.getDataColumns(data),
                 "ftype" : vtype
                 };
                 alert(params.ftype);
                 var success = function(resultData) {
                 //得到的class的集合,加载到classData中去
                 data.loadData(resultData);
                 };
                 justep.Baas.sendRequest({
                 "url" : "/app_test",
                 "action" : "queryAccountClass",
                 "params" : params,
                 "success" : success
                 });
        };

以上为我根据例子写的代码,select1的change事件里调用classdata的刷新。在classdata的刷新事件中具体做取值和数据过滤,我在alert(params.ftype)能把类型的值正确打出来,也就是说调用success里传的params参数没问题,但目前的问题是不管类型选收入还是支出,在class下拉表里显示的都是收入的具体分类,没有支出的,感觉classdata没有刷新数据
传说中路过
回复 支持 反对

使用道具 举报

发表于 2016-8-29 10:17:49 | 显示全部楼层
carbinechun 发表于 2016-8-27 10:26
Model.prototype.select1Change = function(event) {

                this.comp("classData").refreshData();

请问你后端代码 queryAccountClass 是怎么写的??有没有进行java调试呢??? 可以打印看一下真正执行的sql语句到底是什么?
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2016-9-1 17:01:47 | 显示全部楼层
本帖最后由 carbinechun 于 2016-9-1 17:03 编辑
liangyongfei 发表于 2016-8-29 10:17
请问你后端代码 queryAccountClass 是怎么写的??有没有进行java调试呢??? 可以打印看一下真正执行的 ...

我用了另一种方式,直接对classData设置filter条件进行过滤。问题的关键点在于设置绑定数据对应字段的值清空要在classData的refresh之前,如果清空是放在之后的,那select列表里会显示上一次已选择的值。。让一个顺序把我折磨了这些天。。。。可以结帖了,谢谢版主的耐心解答附上代码:
        Model.prototype.select1Change = function(event) {
                //fclass清空在前
                this.comp("accountData").setValue('fclass','');
                //classData过滤刷新在后
                var sFilter="";
                sFilter=" ftype='"+this.comp("typeSel").val()+"' ";
                this.comp("classData").setFilter("filter", sFilter);
                this.comp("classData").refreshData();
        };

传说中路过
回复 支持 反对

使用道具 举报

10

主题

89

帖子

549

积分

高级会员

Rank: 4

积分
549
QQ
发表于 2016-11-2 10:26:27 | 显示全部楼层
carbinechun 发表于 2016-9-1 17:01
我用了另一种方式,直接对classData设置filter条件进行过滤。问题的关键点在于设置绑定数据对应字段的值清 ...

好贴!
wex5 & android
回复 支持 反对

使用道具 举报

97

主题

580

帖子

1359

积分

金牌会员

Rank: 6Rank: 6

积分
1359
QQ
 楼主| 发表于 2016-11-4 09:27:10 | 显示全部楼层

呵呵,谢谢,互相学习
传说中路过
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-9 00:01 , Processed in 0.102531 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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