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

QQ登录

只需一步,快速开始

楼主: fteair

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

[复制链接]
发表于 2017-3-30 14:00:25 | 显示全部楼层
fteair 发表于 2017-3-30 13:47
我今天排查了前面的错误,改到最后就grid这里了
我用静态的方法定义的grid现在能成功了,myFile[0]这个是 ...

不对!!静态的情况,他是一个js数组!!而你动态确实生成一个字符串!!
肯定不符合要求的!
可以使用 JSON.parse(字符串) 将他转成js对象!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

36

主题

192

帖子

530

积分

高级会员

Rank: 4

积分
530
 楼主| 发表于 2017-3-30 15:13:45 | 显示全部楼层
liangyongfei 发表于 2017-3-30 14:00
不对!!静态的情况,他是一个js数组!!而你动态确实生成一个字符串!!
肯定不符合要求的!
可以使用 J ...

我试了,好像要报错
回复 支持 反对

使用道具 举报

36

主题

192

帖子

530

积分

高级会员

Rank: 4

积分
530
 楼主| 发表于 2017-3-30 15:20:43 | 显示全部楼层
fteair 发表于 2017-3-30 15:13
我试了,好像要报错

8.png
报这个错,括号后面没东西了
循环得到的
  1. defCol+='"' +i+'"{"name":"'+fieldName+'","xid":"'+fieldName+'_id"},';
  2.                                                 i=i+1;
复制代码
  1.                                 if(defCol.length>0){
  2.                                         myFile=defCol.split(",");
  3.                                 }
  4.                                 var node = this.getElementByXid("div2");                                  
  5.                           
  6.                                 var reg = /,$/gi;
  7.                                 defCol = "{" + defCol.replace(reg, "") + "}";
  8.                                 var result = JSON.parse(defCol);
  9.                             var option = {
  10.                                 parentNode : node,
  11.                                 xid:'grid1',
  12.                                 data: "myTable",
  13.                                 width: '100%',
  14.                                 height:'auto',
  15.                                 //colModel : [{name:"ee",xid:"usename"},{name:"ww",xid:"loginname"}]
  16.                                 colModel:result
  17.                                 };
复制代码
到json转换这里的时候就会报错



回复 支持 反对

使用道具 举报

发表于 2017-3-30 15:25:29 | 显示全部楼层
fteair 发表于 2017-3-30 15:20
报这个错,括号后面没东西了
循环得到的
到json转换这里的时候就会报错

JSON.parse(defCol); 报错吗??

打印一下defCol 的值是什么??
肯定是不符合标准的json数组的格式!!!

自己调试看看吧!将这个字符串直接拿来执行测试,调整到可以使用了再看动态如何生成
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

36

主题

192

帖子

530

积分

高级会员

Rank: 4

积分
530
 楼主| 发表于 2017-3-30 15:40:46 | 显示全部楼层
liangyongfei 发表于 2017-3-30 15:25
JSON.parse(defCol); 报错吗??

打印一下defCol 的值是什么??

格式要是
  1. [{name:"ee",xid:"usename"},{name:"ww",xid:"loginname"}]
复制代码

这样转换就行吗?
回复 支持 反对

使用道具 举报

发表于 2017-3-30 15:56:41 | 显示全部楼层
fteair 发表于 2017-3-30 15:40
格式要是

这样转换就行吗?

JSON.parse('[{"name":"ee","xid":"usename"},{"name":"ww","xid":"loginname"}]')
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

36

主题

192

帖子

530

积分

高级会员

Rank: 4

积分
530
 楼主| 发表于 2017-3-30 15:58:20 | 显示全部楼层
liangyongfei 发表于 2017-3-30 15:56
JSON.parse('[{"name":"ee","xid":"usename"},{"name":"ww","xid":"loginname"}]')

终于有这个效果了,谢谢,我还加了一个button列,但是打开页面没有button,要点列名才出现
回复 支持 反对

使用道具 举报

发表于 2017-3-30 16:13:44 | 显示全部楼层
fteair 发表于 2017-3-30 15:58
终于有这个效果了,谢谢,我还加了一个button列,但是打开页面没有button,要点列名才出现 ...

是的!动态生成是不行的!
需要在事件中重新渲染才能显示!
grid和dataTables 组件有提供onCellRender事件,用法可参考文档:http://docs.wex5.com/comps-datatables-

需要接管onCellRender

grid.on("onCellRender ", this.onCellRender)

自己定义一个方法 onCellRender中去重新渲染!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

36

主题

192

帖子

530

积分

高级会员

Rank: 4

积分
530
 楼主| 发表于 2017-3-30 16:30:47 | 显示全部楼层
liangyongfei 发表于 2017-3-30 16:13
是的!动态生成是不行的!
需要在事件中重新渲染才能显示!
grid和dataTables 组件有提供onCellRender事 ...

我就是这样做的
  1. grids.on("onCellRender",function(event){
  2.                                     if (event.colName == "selectCol"){
  3.                                     event.html = "<button class='btn btn-default ' onclick='justep.Bind.contextFor(this).$model.selectData(event,"" + event.rowID + "")'>选择</button>";
  4.                                     }
  5.                             });
复制代码

不过要点一下表头,才能看到button
回复 支持 反对

使用道具 举报

发表于 2017-3-30 16:35:36 | 显示全部楼层
fteair 发表于 2017-3-30 16:30
我就是这样做的

不过要点一下表头,才能看到button

那你调试看下onCellRender 执行了吗??
不行就代码调用一下grid.refresh()
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-5 22:13 , Processed in 0.109156 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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