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

QQ登录

只需一步,快速开始

查看: 3115|回复: 9

[结贴] 如何遍历grid的每一个单元格

[复制链接]

36

主题

132

帖子

315

积分

中级会员

Rank: 3Rank: 3

积分
315
发表于 2015-4-18 21:12:16 | 显示全部楼层 |阅读模式
我现在有个列表和详细的表单,详细里面有个grid,每次打开后都可能添加一些数据,保存完后,下次再打开的时候那么grid里面有值的话就不能让他在编辑,没有值可继续编辑。该如何写,该如何写循环和给单元格添加ro属性

36

主题

132

帖子

315

积分

中级会员

Rank: 3Rank: 3

积分
315
 楼主| 发表于 2015-4-18 21:53:48 | 显示全部楼层
var data = justep.xbl('dataDetail');
        var total = data.getTotal();
        var grid = justep.xbl('grdDetail');
        var colTotla = justep.xbl('grdDetail').grid.columnIds.length;
       
        for(var i=0;i<total;i++){
                for(var j=0;j<colTotla;j++){
                        if(grid.grid(i,j) != null){
                                var rowid = data.getID(i);
                                grid.grid.setCellExcellType(rowid,j,"ro");
                        }
                }
                }

现在这个报错,grid.grid(i,j)说不是函数。。;
回复 支持 反对

使用道具 举报

36

主题

132

帖子

315

积分

中级会员

Rank: 3Rank: 3

积分
315
 楼主| 发表于 2015-4-18 22:14:15 | 显示全部楼层
现在是如何得到某一个单元格值出现问题,该如何取?if(grid.getCell(i,j).getValue() != null)这样也是错误
回复 支持 反对

使用道具 举报

发表于 2015-4-20 09:20:18 | 显示全部楼层
设置单元格的是否只读,可以通过规则来判断

你可以对关系设置只读规则,比如:为空返回false,不为空就返回true

回复 支持 反对

使用道具 举报

发表于 2015-4-20 09:23:22 | 显示全部楼层
lixiaodong-x5 发表于 2015-4-18 22:14
现在是如何得到某一个单元格值出现问题,该如何取?if(grid.getCell(i,j).getValue() != null)这样也是错误 ...


下面代码供你参考,如果列的类型是text,设置ro可能会不生效的,setTimeout是必须要的:
  1.         var data = justep.xbl('dataDetail');
  2.         var total = data.getTotal();
  3.         var grid = justep.xbl('grdDetail');
  4.         for ( var i = 0; i < total; i++) {
  5.                 var rowid = data.getID(i);
  6.                 if (data.getValue("fProClassificationCode", rowid) == "Z6") {
  7.                         if (data.getValue("fInvCode", rowid) == "Z602") {
  8.                                 grid.grid.setCellExcellType(rowid, 12, "ro");
  9.                                 grid.grid.setCellExcellType(rowid, 13, "ro");
  10.                                 grid.grid.setCellExcellType(rowid, 14, "ro");
  11.                                 grid.grid.setCellExcellType(rowid, 15, "ed");
  12.                                 grid.grid.setCellTextStyle(rowid, 15,
  13.                                                 "background-color: yellow");
  14.                         }
  15.                 } else {
  16.                         grid.grid.setCellExcellType(rowid, 12, "ed");
  17.                         grid.grid.setCellExcellType(rowid, 13, "ed");
  18.                         grid.grid.setCellExcellType(rowid, 14, "ed");
  19.                         grid.grid.setCellExcellType(rowid, 15, "ro");
  20.                         grid.grid.setCellTextStyle(rowid, 12, "background-color: yellow");
  21.                         grid.grid.setCellTextStyle(rowid, 13, "background-color: yellow");
  22.                         grid.grid.setCellTextStyle(rowid, 14, "background-color: yellow");
  23.                 }
  24.         }

  25.         setTimeout(function() {
  26.                 var grid = justep.xbl('grdDetail');
  27.                 grid.grid.setSizes();
  28.         }, 200);
复制代码
回复 支持 反对

使用道具 举报

36

主题

132

帖子

315

积分

中级会员

Rank: 3Rank: 3

积分
315
 楼主| 发表于 2015-4-20 20:17:13 | 显示全部楼层
Tomato_2014 发表于 2015-4-20 09:20
设置单元格的是否只读,可以通过规则来判断

你可以对关系设置只读规则,比如:为空返回false,不为空就返 ...

我知道,我现在是行和列都知道,怎么用代码取单元格,是grid.grid(i,j)么,是这个意思
回复 支持 反对

使用道具 举报

36

主题

132

帖子

315

积分

中级会员

Rank: 3Rank: 3

积分
315
 楼主| 发表于 2015-4-20 20:18:37 | 显示全部楼层
Tomato_2014 发表于 2015-4-20 09:23
下面代码供你参考,如果列的类型是text,设置ro可能会不生效的,setTimeout是必须要的:
...

我现在是针对所有的单元格循环,不是针对每一列而且还是特定的。。。就是知道行和列怎么取出所对应的单元格的内容,grid.grid(I,j)?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35920
发表于 2015-4-21 11:06:42 | 显示全部楼层
如果是控制已有的数据不能编辑,新增的数据可以编辑
你可以定义一个函数,函数中判断当前的行状态,如果为new就返回false,如果不为new就返回true
然后在data的规则中设置概念的只读,调用这个函数



远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

36

主题

132

帖子

315

积分

中级会员

Rank: 3Rank: 3

积分
315
 楼主| 发表于 2015-4-22 08:49:53 | 显示全部楼层
jishuang 发表于 2015-4-21 11:06
如果是控制已有的数据不能编辑,新增的数据可以编辑
你可以定义一个函数,函数中判断当前的行状态,如果为n ...

已搞定,请结贴
回复 支持 反对

使用道具 举报

1

主题

2

帖子

14

积分

新手上路

Rank: 1

积分
14
QQ
发表于 2016-3-30 17:30:16 | 显示全部楼层
jishuang 发表于 2015-4-21 11:06
如果是控制已有的数据不能编辑,新增的数据可以编辑
你可以定义一个函数,函数中判断当前的行状态,如果为n ...

我将列的type设置成textarea,以上方法就不起作用,求指教
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 07:01 , Processed in 0.102346 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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