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

QQ登录

只需一步,快速开始

查看: 22332|回复: 15

扩展grid组件(使用onRender事件)

  [复制链接]

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
发表于 2013-1-4 14:30:56 | 显示全部楼层 |阅读模式
grid组件的列支持输入文字、显示文字、下拉框选择、上传附件、显示索引等,
如果希望显示按钮、图片等内容,需要将列的type属性设置为html,在列的onRender事件中返回html片段,grid组件即可将html片段展示在该列中

onRender事件中,通过event参数可以访问到的值如下
当前行rowid           event.rowId
当前单元格的值      event.value
当前行其它列的值   event.cell.getValueByColId('关系名')

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-1-4 14:36:01 | 显示全部楼层

显示按钮

  1. var fid = event.rowId;
  2. var html = "<button id="btnupdate" onclick="mainActivity.updateWork('" + fid + "')" >编辑</button>"
  3.          + "<button id="btndelete" onclick="mainActivity.deleteWork('" + fid + "')">删除</button>"
  4.          + "<button id="btnselect" onclick="mainActivity.selectWork('" + fid + "')" >查看</button>";
  5. return html;
复制代码
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-1-4 14:40:52 | 显示全部楼层

显示链接

  1. var fid = event.rowId;
  2. var html = "<a href="javascript:mainActivity.selectWork('" + fid + "')">" + event.value + "</a>";
  3. return html;
复制代码
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-1-4 14:51:50 | 显示全部楼层

显示checkbox

  1. var fid = event.rowId;
  2. var html = "<input type="checkbox" name="checkbox" id="" + fid + "">";
  3. return html;
复制代码
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-1-4 14:53:02 | 显示全部楼层

显示图片

  1. var html = "<img src='"+justep.Request.convertURL("/UI/system/images/collapsed.gif",true)+"'/>";
  2. return html;
复制代码
图片可以来自于数据库,文档服务器。详细代码参考
在grid中显示图片http://bbs.justep.com/forum.php?mod=viewthread&tid=37294
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-1-4 14:55:20 | 显示全部楼层

显示单选按钮

  1. mainActivity.grid1_fOwnerIDRender = function(event){
  2.     var fid = event.rowId;
  3.     var html = "<input type='radio' value='0' name='"+fid+"' "+ifChecked("0",event.value)+"  onclick="saveRadio('"+fid+"',0)">芒果</input>"
  4.               +"<input type='radio' value='1' name='"+fid+"' "+ifChecked("1",event.value)+"  onclick="saveRadio('"+fid+"',1)">苹果</input>";
  5.     return html;
  6. }

  7. function ifChecked(value,colValue){
  8.     if(value==colValue)
  9.         return "checked"
  10.     else
  11.         return "";   
  12. }

  13. function saveRadio(rowID,value){
  14.     justep.xbl("bizData1").setValue("fOwnerID", value, rowID);
  15. }
复制代码
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

88

主题

9507

帖子

5135

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5135
QQ
 楼主| 发表于 2013-1-4 15:05:53 | 显示全部楼层

单击单元格,显示√,再单击,显示空白

以grid中的某列为例,其它的列也调用这个方法,注意每列的列名不同。
做法是,在grid的单元格中放一个div,给div添加单击事件,在事件中给关系赋值,在render事件中用这个值来控制显示的信息
  1. mainActivity.grdMain_fZXGXRender = function(event){
  2.         var value;
  3.         if(event.value=="1")
  4.                 value = "√";
  5.         else
  6.                 value = "";
  7.         return "<div style="width:100%;height:100%" onclick="selectCell('"+event.rowID+"','fZXGX');">"+value+"</div>";
  8. };

  9. function selectCell(rowid,col){
  10.         var data = justep.xbl("dataMain");
  11.         var value = data.getValue(col,rowid);
  12.         if(value=="1")
  13.                 value = "0";
  14.         else
  15.                 value = "1";
  16.         data.setValue(col,value,rowid);
  17. };
复制代码
远程的联系方法 QQ 728094812。添加好友时,需要填写论坛账号
发远程时同时也发一下帖子的地址,方便了解要解决的问题

如按照该方法解决,请及时跟帖,便于版主结贴

73

主题

130

帖子

298

积分

中级会员

Rank: 3Rank: 3

积分
298
发表于 2013-4-12 14:45:21 | 显示全部楼层
zhaixin 发表于 2013-1-4 15:05
以grid中的某列为例,其它的列也调用这个方法,注意每列的列名不同。
做法是,在grid的单元格中放一个div, ...

283

主题

1378

帖子

2001

积分

金牌会员

Rank: 6Rank: 6

积分
2001
QQ
发表于 2013-4-12 17:32:31 | 显示全部楼层
好东西啊,收藏了!

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35913
发表于 2013-7-3 13:30:11 | 显示全部楼层
在onReader事件中获取此列后面的列值的方法

可以通过cell的方法获取,如下:
event.cell.getValueByColId('列名')
event是onReader中的参数
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

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

GMT+8, 2024-4-19 23:13 , Processed in 0.067690 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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