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

QQ登录

只需一步,快速开始

查看: 3396|回复: 4

[结贴] grid渲染赋值

[复制链接]

127

主题

535

帖子

1076

积分

金牌会员

Rank: 6Rank: 6

积分
1076
QQ
发表于 2019-3-20 14:46:13 | 显示全部楼层 |阅读模式
本帖最后由 chenweibinx 于 2019-3-20 17:01 编辑

想要实现的效果:页面有一个select表示“状态”,数据有:未开、新增、评级、复核,当选中其中一个之后,就能够自动过滤grid显示的内容中“状态”对应的数据
问题:grid显示的是接口那边的数据,没有“状态”的字段,但是我这边是将数据存入X5的数据库,只有X5的数据库有“状态”的字段,所以我需要将X5遍历看对应的单是什么状态赋值给grid的字段,但是我用渲染,几十个数据渲染就要10来秒,请问有什么方法可以优化的吗?
具体代码如下:

// 过滤单据状态
        Model.prototype.select2Change = function(event) {
                this.p = "1";
                var Dgrid = this.comp('grid_applyno');
                Dgrid.refresh();
                this.p = "";
                var status = this.comp("select2").val();
                if (status === "未开" || status === "新增" || status === "评级" || status === "复核") {
                        Dgrid.setFilter("");
                        Dgrid.setFilter("$row.val(\"COLSTATUS\") == '" + status + "'");
                } else {
                        Dgrid.setFilter("");
                }
                Dgrid.refresh();
        };

        // 渲染
        Model.prototype.grid_applynoCellRender = function(event) {
                if (this.p === "1") {
                        var mdata = this.comp("mainData");
                        var ApplyNoData = this.comp("ApplyNoData");
                        ApplyNoData.saveData();
                        var appno = "";
                        var itemno = "";
                        if (event.colName == "COLSTATUS") {
                                var row1 = event.row;
                                appno = row1.val("COL");
                                itemno = row1.val("COL1");
                                mdata.filters.clear();
                                mdata.setFilter("filter1", "fApplyNo='" + appno + "'");
                                mdata.setFilter("filter2", "fItemNo='" + itemno + "'");
                                mdata.refreshData();
                                if (mdata.count() === 0) {
                                        // event.html = "<p>" + "未开" + "</p>";
                                        var rows = ApplyNoData.find([ "COL", "COL1" ], [ appno, itemno ]);
                                        if (rows.length > 0) {
                                                rows[0].val("COLSTATUS", "未开");
                                        }
                                } else {
                                        var rows1 = ApplyNoData.find([ "COL", "COL1" ], [ appno, itemno ]);
                                        if (rows1.length > 0) {
                                                rows1[0].val("COLSTATUS", mdata.getValue("fState"));
                                        }
                                        // event.html = "<p>" + mdata.getValue("fState") + "</p>";
                                }
                        }
                }
        };

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2019-3-20 17:27:09 | 显示全部楼层
x5中存的数据给grid的数据没有关系?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

127

主题

535

帖子

1076

积分

金牌会员

Rank: 6Rank: 6

积分
1076
QQ
 楼主| 发表于 2019-3-21 09:23:07 | 显示全部楼层
jishuang 发表于 2019-3-20 17:27
x5中存的数据给grid的数据没有关系?

就比如接口返回的数据字段是code,type等,但是没有status的字段,然后X5有code,type,status的字段,然后接口查询返回的字段加载到cdata,然后显示在grid,这时候我需要在grid看到status,所以就需要同步关联X5对应code和type的status,然后我用上面的代码那样渲染需要挺长的时间。
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36185
发表于 2019-3-21 11:06:19 | 显示全部楼层
这样的在后端操作,直接把数据返回前端显示

后端定义action,action中调用返回的接口,然后根据接口中的数据关联查出status的值,创建table,把前端需要的都放到table中返回
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

127

主题

535

帖子

1076

积分

金牌会员

Rank: 6Rank: 6

积分
1076
QQ
 楼主| 发表于 2019-3-21 14:05:20 | 显示全部楼层
jishuang 发表于 2019-3-21 11:06
这样的在后端操作,直接把数据返回前端显示

后端定义action,action中调用返回的接口,然后根据接口中的数 ...

好的,谢谢,可以了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-8 13:16 , Processed in 0.051958 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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