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

QQ登录

只需一步,快速开始

查看: 4343|回复: 8

[结贴] 选中行传参

[复制链接]

54

主题

257

帖子

827

积分

高级会员

Rank: 4

积分
827
发表于 2017-6-23 14:01:50 | 显示全部楼层 |阅读模式
我现在有两个页面,一个是订单页,一个是订单详细页。订单页显示的是我的一条条数据的列表,用list组件做的。订单详细页显示的是一条数据的详细信息。当我单击list上的某一行时,将该行的数据传到订单详细页。我现在写的代码如下:1.在订单页的list的onclick事件中:

var notPaidData = this.comp("notPaidData");
var rowID = notPaidData.getRowID();
debugger;
justep.Shell.showPage(require.toUrl("$UI/tenso/notPaidDetail.w"), {
   row : notPaidData.getCurrentRow().toJson(),
   rowID : rowID
}
2.在订单详细页的model的onParamsReceive事件中:
var data = this.comp("psData");
                this.comp("list1").refresh();
                rowID = event.data.rowID;
                debugger;
                var params = {
                        "limit" : event.limit,
                        "offset" : event.offset,
//                        "orderBy" : "sendTime desc",
                };
                data.setFilter("filter", "cs_psmain.fID = ' " +rowID+ " ' ");

现在结果是我在订单页点击一行,所有数据都会传到订单详细页,是参数接收的问题吗?


目前不用这个平台啦~~

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-23 14:13:05 | 显示全部楼层
1.如下的方式获取row和rowid
var data = this.comp("mainData");
var row = event.bindingContext.$object;
var id = data.getRowID(row);
2.在详细setFilter后调用data的refreshData()刷新数据
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

54

主题

257

帖子

827

积分

高级会员

Rank: 4

积分
827
 楼主| 发表于 2017-6-23 14:53:48 | 显示全部楼层
jishuang 发表于 2017-6-23 14:13
1.如下的方式获取row和rowid
var data = this.comp("mainData");
var row = var row = event.bindingContex ...

var id = notPaidData.getRowID(row);在执行这一句时报错
微信截图_20170623145309.png

目前不用这个平台啦~~
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36069
发表于 2017-6-23 15:34:02 | 显示全部楼层
看看row获取的正确吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

54

主题

257

帖子

827

积分

高级会员

Rank: 4

积分
827
 楼主| 发表于 2017-6-23 20:34:06 | 显示全部楼层
jishuang 发表于 2017-6-23 15:34
看看row获取的正确吗?

我用这个方法能取到rowid,如下:
var notPaidData = this.comp("notPaidData");
                var rowID = notPaidData.getRowID();
                if (notPaidData.val('fPAYSTATE') == "未付款") {
                        justep.Shell.showPage(require.toUrl("$UI/tenso/notPaidDetail.w"), {
                                row : notPaidData.getCurrentRow().toJson(),
                                rowID : rowID
                        });
                         }else if (notPaidData.val('fPAYSTATE') == "已付款") {
                         justep.Shell.showPage(require.toUrl("$UI/tenso/PaidDetail.w"), {
                         row : notPaidData.getCurrentRow().toJson(),
                         rowID : rowID
                         });
                         }else {
                         justep.Shell.showPage(require.toUrl("$UI/tenso/affirmDetail.w"), {
                         row : notPaidData.getCurrentRow().toJson(),
                         rowID : rowID
                         });
                }

详细页代码如下:
Model.prototype.modelParamsReceive = function(event){
       
                var data = this.comp("psData");
                rowID = event.data.rowID;
                debugger;
                var params = {
                        "limit" : event.limit,
                        "offset" : event.offset
                };
//                data.setFilter("filter", "cs_psmain.fID = ' " +rowID+ " ' ");

                // 按ID进行查询,通过CData调用自定义的sqlQuery的时候,使用下面的方法,设置过滤条件。
                params.filter = "fID='" + rowID + "'";
                justep.Baas.sendRequest({
                        "url" : "/tenso/base",
                        "action" : "queryCs_psmain",
                        "async" : false,
                        "params" : params,
                        "success" : function(ret) {
                                data.loadData(ret);
                        }
                });
                data.first();
                this.comp("list1").refresh(false);
        };

我list的autoload和data的autoload都设置false了,为什么list的refresh方法设置为false还是会再查询一次data
目前不用这个平台啦~~
回复 支持 反对

使用道具 举报

54

主题

257

帖子

827

积分

高级会员

Rank: 4

积分
827
 楼主| 发表于 2017-6-24 10:00:05 | 显示全部楼层
jishuang 发表于 2017-6-23 15:34
看看row获取的正确吗?

按照你的方法,取不到rowid

目前不用这个平台啦~~
回复 支持 反对

使用道具 举报

54

主题

257

帖子

827

积分

高级会员

Rank: 4

积分
827
 楼主| 发表于 2017-6-24 10:02:03 | 显示全部楼层
jishuang 发表于 2017-6-23 15:34
看看row获取的正确吗?

按照你的方法,取不到rowid 微信截图_20170624095753.png 微信截图_20170624095956.png

目前不用这个平台啦~~
回复 支持 反对

使用道具 举报

54

主题

257

帖子

827

积分

高级会员

Rank: 4

积分
827
 楼主| 发表于 2017-6-25 14:19:50 | 显示全部楼层
已解决。
在我的订单页的list下class为x-list-template的子节点的bind-click事件中获取row和rowid,如下:var notPaidData = this.comp("notPaidData");
var row = event.bindingContext.$object;
var rowid = notPaidData.getRowID(row);

justep.Shell.showPage(require.toUrl("$UI/tenso/notPaidDetail.w"), {
        row : notPaidData.getCurrentRow().toJson(),
        rowID : rowid
})

在订单详细页面model下的参数接受事件中接收传过来的id再按照条件过滤,如下:
var psData = this.comp("psData");
rowID = event.data.rowID;
psData.setFilter("filter1", "cs_psmain.fID = '" + rowID + "'");
this.comp("list1").refresh(false);

目前不用这个平台啦~~
回复 支持 反对

使用道具 举报

21

主题

122

帖子

442

积分

中级会员

Rank: 3Rank: 3

积分
442
QQ
发表于 2017-6-27 08:43:18 | 显示全部楼层
mark
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 23:00 , Processed in 0.065046 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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