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

QQ登录

只需一步,快速开始

查看: 11353|回复: 41

[结贴] 动态加载data并动态加载grid并赋值

[复制链接]

36

主题

192

帖子

530

积分

高级会员

Rank: 4

积分
530
发表于 2017-3-28 11:10:34 | 显示全部楼层 |阅读模式
我从服务器读取了数据,动态加载到data里,这实现了,然后我创建一个grid,把数据动态加载进去,
  • allDatas: p
    • _subscriptions: Object
    • cacheDiffForKnownOperation: (e,t,s)
    • latestValue: Array[20]
      • 0: n
        • data: n
        • row: Object
          • ID: 24574
          • LOGIN_NAME: "602884"
          • RN: 1
          • USER_NAME: "余灿"
          • userdata: Object
          • __proto__: Object
        • __proto__: r
      • 1: n
      • 2: n
      • 3: n
      • 4: n
然后
var node = this.getElementByXid("div2");
            var option = {
                parentNode : node,
                xid:'grid1',
                //grid的属性,设计时有的属性都可以设置
                data: "data1",
                width: '100%',
                height:'auto',
                // 列定义
                colModel : [{width:"300",name:"USER_NAME",xid:"usename"},{width:"300",name:"LOGIN_NAME",xid:"usename"}]
            };
            new Grid(option);
创建这个会报错   this.getElementByXid is not a function
我需要动态创建data并用grid显示出来
而且,data的列不一定是这几个的。






1

主题

6163

帖子

2095

积分

金牌会员

Rank: 6Rank: 6

积分
2095
QQ
发表于 2017-3-28 11:41:07 | 显示全部楼层
关于this.getElementByXid is not a function  这个我觉得是this所指代的对象放生了改变   建议使用var  self = this;来留住this  

动态创建data  的这个  我觉得你是需要把数据load到data里面吧   你说的是动态加载data的数据吧
回复 支持 反对

使用道具 举报

发表于 2017-3-28 11:43:32 | 显示全部楼层
请问完整的方法定义是什么??
只有定义在model对象的js方法才可以使用this.getElementByXid

你的报错是getElementByXid不存在!说明方法定义不是  这种格式的吗?
Model.prototype.test= function(){
                //方法
        };
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

36

主题

192

帖子

530

积分

高级会员

Rank: 4

积分
530
 楼主| 发表于 2017-3-28 13:54:04 | 显示全部楼层
liangyongfei 发表于 2017-3-28 11:43
请问完整的方法定义是什么??
只有定义在model对象的js方法才可以使用this.getElementByXid

Model.prototype.createControl = function(flowId){

}
我定义了一个创建grid的方法,在data加载了数据之后调用,不过不行之后我把这个方法放到modelLoad里了,倒是能创建grid了,只是没显示数据
回复 支持 反对

使用道具 举报

36

主题

192

帖子

530

积分

高级会员

Rank: 4

积分
530
 楼主| 发表于 2017-3-28 13:59:13 | 显示全部楼层
半导体 发表于 2017-3-28 11:41
关于this.getElementByXid is not a function  这个我觉得是this所指代的对象放生了改变   建议使用var  se ...

动态加载data的数据这个倒是实现了的,就是放到grid里的时候有问题,
ID: 24574
LOGIN_NAME: "602884"
RN: 1
USER_NAME: "余灿"
每个数据是这样,我设置grid列的到时候怎么对应?要用bind-ref 在列里面定义吗?
回复 支持 反对

使用道具 举报

发表于 2017-3-28 14:05:39 | 显示全部楼层
fteair 发表于 2017-3-28 13:54
Model.prototype.createControl = function(flowId){

}

data中有数据吗??如果绑定了data 且有数据就能显示!
不行就调用下grid.refresh()

http://bbs.wex5.com/forum.php?mo ... 3&pid=165218651
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

36

主题

192

帖子

530

积分

高级会员

Rank: 4

积分
530
 楼主| 发表于 2017-3-28 14:13:57 | 显示全部楼层
liangyongfei 发表于 2017-3-28 14:05
data中有数据吗??如果绑定了data 且有数据就能显示!
不行就调用下grid.refresh()

colModel : [{width:"300",name:"反馈人",xid:"usename"},{width:"300",name:"登陆人",xid:"loginname"}]
我觉得是不是我没把列绑定数据的原因,会报错cannot read property'get'of underfind
data1的接管刷新事件里写的读取数据给data,modeload里写的创建grid,我即使是加载了data1数据之后刷新,也是这个问题
回复 支持 反对

使用道具 举报

发表于 2017-3-28 14:35:05 | 显示全部楼层
fteair 发表于 2017-3-28 14:13
colModel : [{width:"300",name:"反馈人",xid:"usename"},{width:"300",name:"登陆人",xid:"loginname"}] ...

代码就是如下!
参照写法,吧data组件的xid 和列名定义上就行的啊!
  1. //引用grid.js
  2. var Grid = require("$UI/system/components/justep/grid/grid");

  3. Model.prototype.createGridBtnClick = function(event) {
  4.     var parentNode = this.getElementByXid("content1");
  5.     var option = {
  6.         parentNode : parentNode,
  7.         //grid的属性,设计时有的属性都可以设置
  8.         data: "orgData",
  9.         width: '100%',
  10.         height:'auto',
  11.         // 列定义
  12.         colModel : [{width:"300",name:"sName",xid:"column1" },{width:"200",name:"sCode",xid:"column2"}]
  13.     };
  14.     new Grid(option);
  15. };
复制代码


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

使用道具 举报

36

主题

192

帖子

530

积分

高级会员

Rank: 4

积分
530
 楼主| 发表于 2017-3-28 14:38:33 | 显示全部楼层
liangyongfei 发表于 2017-3-28 14:35
代码就是如下!
参照写法,吧data组件的xid 和列名定义上就行的啊!

我是这样写的,但是列的定义是,宽度、显示名、xid,没有绑定的data列啊?难道要显示名与data列名对应?
回复 支持 反对

使用道具 举报

发表于 2017-3-28 15:00:31 | 显示全部楼层
fteair 发表于 2017-3-28 14:38
我是这样写的,但是列的定义是,宽度、显示名、xid,没有绑定的data列啊?难道要显示名与data列名对应? ...

是的!
,name:"sName"
就是指定列名的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-5 22:09 , Processed in 0.058844 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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