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

QQ登录

只需一步,快速开始

查看: 4236|回复: 10

[结贴] 级联动

[复制链接]

11

主题

45

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
发表于 2017-11-16 16:37:13 | 显示全部楼层 |阅读模式
想做一个手机版的联动二级联动或者三级联动,效果就像dispicker2做出来效果,滑动的,
但是dispicker2组件已经绑定好了全国地址的js,我的页面有地址,还要一个自己的联动,dispicker2可以绑定两个js吗
或者有没有其他好的方法?
发表于 2017-11-16 17:00:41 | 显示全部楼层
/UI2/system/components/justep/picker/demo/picker.w
可以自己用picker 组件做

选择二级的时候!根据一级的数据为条件刷新二级data就行!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

11

主题

45

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
 楼主| 发表于 2017-11-17 11:23:00 | 显示全部楼层
liangyongfei 发表于 2017-11-16 17:00
/UI2/system/components/justep/picker/demo/picker.w
可以自己用picker 组件做

picker组件可以使用,数据已经出来了,后台获得的数据加载到data组件中,然后显示,但是现在有有一个问题,点击第一列第二列会跟随着变化,但是地三列没有反应,需要点击第二列才可以,
piker已经绑定了 过滤条件:$row.val("pId") == $model.organd1Data.val("value");
怎样可以第一列点击 二三列都跟着改变呢?
回复 支持 反对

使用道具 举报

发表于 2017-11-17 11:40:11 | 显示全部楼层
laomeng 发表于 2017-11-17 11:23
picker组件可以使用,数据已经出来了,后台获得的数据加载到data组件中,然后显示,但是现在有有一个问题 ...

filter属于前端过滤是吧!
第二列data组件 需要重新定位一下当前行  ,可以使用data.find方法找到符合条件的行对象!
然后找到第一行行对象
执行data.to(row)  就可以定位到目前列表的第一行了!  

当第二个data行对象发生变化时,第三个filter 才会生效的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

11

主题

45

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
 楼主| 发表于 2017-11-17 16:23:04 | 显示全部楼层
liangyongfei 发表于 2017-11-17 11:40
filter属于前端过滤是吧!
第二列data组件 需要重新定位一下当前行  ,可以使用data.find方法找到符合条 ...

那你这意思 是不能实现三级联动了?
全国地址的联动是怎么实现的?点击省的时候后面的市和区都会跟着变化
回复 支持 反对

使用道具 举报

发表于 2017-11-17 16:29:02 | 显示全部楼层
laomeng 发表于 2017-11-17 16:23
那你这意思 是不能实现三级联动了?
全国地址的联动是怎么实现的?点击省的时候后面的市和区都会跟着变化 ...

它应该相当于是后台刷新,加载第一层 的时候,第二层重新加载了符合条件的数据!
第二层data变化就会触发第三层data重新加载数据!

条件就是根据当前行的变化!

而你做的是通过filter前端过滤实现的!  第一层行变化了!会过滤第二层,但是第二层的data组件数据并没有任何变化!所以第三层的data 是不会感知的(对于他来说,第二层data数据就没变化的)

所以,点击第一层的时候!你应该用代码 指定第二层data组件的行对象的切换  就是data.to(row)
切换到当前符合条件的第一行就可以了!
行变化后,第三层的过滤条件就可以动态感知到了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

11

主题

45

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
 楼主| 发表于 2017-11-17 17:10:38 | 显示全部楼层
liangyongfei 发表于 2017-11-17 16:29
它应该相当于是后台刷新,加载第一层 的时候,第二层重新加载了符合条件的数据!
第二层data变化就会触发 ...

Model.prototype.picker1Change = function(event){
                var data2 = this.comp('organd2Data');
                var data1 = this.comp('organd1Data');
                var value1=this.comp('picker1').getSelectedItem().row.value.value.latestValue;
                var row=data2.find(['pId'],[value1]);
                data2.to(row);
        };
data已经移动,但是 第三层的过滤条件并没有反应,还是 点击第一层第二层有反应,第三层没有反应,啥情况,是过滤条件需要写在js里面不能写在前端吗?
回复 支持 反对

使用道具 举报

11

主题

45

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
 楼主| 发表于 2017-11-17 17:22:03 | 显示全部楼层
laomeng 发表于 2017-11-17 17:10
Model.prototype.picker1Change = function(event){
                var data2 = this.comp('organd2Data');
                var dat ...

呀呀呀呀 好了好了 我最后一句写错了      谢谢谢谢
回复 支持 反对

使用道具 举报

11

主题

45

帖子

137

积分

初级会员

Rank: 2

积分
137
QQ
 楼主| 发表于 2017-11-17 18:03:45 | 显示全部楼层
liangyongfei 发表于 2017-11-17 16:29
它应该相当于是后台刷新,加载第一层 的时候,第二层重新加载了符合条件的数据!
第二层data变化就会触发 ...

Picker组件,选择事件onOk之后怎样获取当前选择的数据呢,picker的demo里面没有
回复 支持 反对

使用道具 举报

发表于 2017-11-17 18:20:55 | 显示全部楼层
laomeng 发表于 2017-11-17 18:03
Picker组件,选择事件onOk之后怎样获取当前选择的数据呢,picker的demo里面没有 ...

你用的popPicker 组件 吗?
onOK 事件中

event.source.getInnerPickers()  获取下面多个Picker组件对象

然后循环  获取每个Picker 对应字段的值
比如第一个值
  1. event.source.getInnerPickers()[0].getData().getValue('fID')
复制代码

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-24 02:49 , Processed in 0.078130 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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