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

QQ登录

只需一步,快速开始

查看: 9260|回复: 10

[结贴] bizData组件onIndexChanging事件中设置event.cancel=true无效

[复制链接]

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
发表于 2017-1-19 20:31:21 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
本帖最后由 jjsun 于 2017-1-19 21:08 编辑

Bex5版本3.6,window7平台,sqlserver数据库

bizData组件onIndexChanging事件中  设置event.cancel=true,无效。按照api说明,应该是取消行切换(更换当前行操作,当cancel=true时,应该是回到原来行)

现在的现状是:行可以切换(可以从A行切换到B行),但是都变成了不可编辑(鼠标悬停在选中行时,出现红色禁止图标)

    //索引变化中事件 data.onIndexChanging
        Model.prototype.mainDataIndexChanging = function(event){
                var row = event.source.getCurrentRow();
                console.log("**mainDataIndexChanging,rowId="+event.source.getRowID()+",empNo="+(row ? row.val('empNo'):''));
                event.cancel = true;
        };


测试时,故意设置 event.cancel = true。我理解此时应该是不能切换行,但实际效果是可以切换行,但行都变成不可编辑

mainActivity.zip

5.29 KB, 下载次数: 236

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-1-20 11:12:05 | 显示全部楼层
grid组件需要用grid组件的onBeforeRowSelect组件,设置event.cancel = true
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
 楼主| 发表于 2017-1-20 13:58:51 | 显示全部楼层
jishuang 发表于 2017-1-20 11:12
grid组件需要用grid组件的onBeforeRowSelect组件,设置event.cancel = true

grid组件的onBeforeRowSelect组件,设置event.cancel = true
        Model.prototype.mainGridBeforeRowSelect = function(event){
                console.log("**mainGridBeforeRowSelect,originalRowID="+event.originalRowID+",rowID="+event.originalRowID);
                event.cancel = true;
        };


测试结果,originalRowID = rowID(这2个值应该不同才对),鼠标可以切换到其他行(如第3行)上且可以进行编辑,选中行的颜色还停留在原来行(第一行)

11.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-1-20 15:08:02 | 显示全部楼层
下面那个应该是鼠标移动到的颜色吧,赋值是给4这行赋值了?

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



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

使用道具 举报

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
 楼主| 发表于 2017-1-20 15:36:07 | 显示全部楼层
jishuang 发表于 2017-1-20 15:08
下面那个应该是鼠标移动到的颜色吧,赋值是给4这行赋值了?

我的需求是 当切换行时,原行值有修改,不允许切换。即只能同时有1行处于编辑未保存状态,包括新增、修改,同时只能处理1行。通过什么事件实现?data.onIndexChanging不生效,grid的onBeforeRowSelect也不支持
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-1-20 15:59:51 | 显示全部楼层
鼠标可以切换到其他行(如第3行)上且可以进行编辑,是什么意思?自己js赋值,或把值赋值到这行吗?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
 楼主| 发表于 2017-1-20 18:10:05 | 显示全部楼层
jishuang 发表于 2017-1-20 15:59
鼠标可以切换到其他行(如第3行)上且可以进行编辑,是什么意思?自己js赋值,或把值赋值到这行吗?
...

切换行控制不好使。按照API说明,event.cancel=true,应该回到原来的行上,即不允许切换行的。

现在,鼠标点击其他行,选中行的颜色没有跟着变化(还停留在原来行上),在新行上是可以编辑的
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-1-20 19:02:23 | 显示全部楼层
这个应该是缺陷,目前如果要实现的话需要修改jquery grid原始的方法
/UI2/system/components/justep/grid/js/jqGrid.src.js文件中jqGridBeforeSelectRow事件的event中加一个状态的值,判断cancel的时候设置状态值,然后在/UI2/system/components/justep/grid/grid.js的jqGridBeforeSelectRow中获取这个状态的值判断,控制不执行click
click(function(evt){
                                var td = evt.target;
                                var ptr = $(td, self.domNode.rows).closest("tr.jqgrow");
                                if(ptr.length === 0 ){return;}
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



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

使用道具 举报

12

主题

2627

帖子

2866

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2866
发表于 2017-4-24 16:24:11 | 显示全部楼层
V3.7版本已经解决
回复 支持 反对

使用道具 举报

116

主题

276

帖子

510

积分

高级会员

Rank: 4

积分
510
QQ
 楼主| 发表于 2017-4-26 11:25:41 | 显示全部楼层
hecr 发表于 2017-4-24 16:24
V3.7版本已经解决

3。7版什么发布?另grid上的列排序(如果有中文),不能很好的排序,3.7版是否已解决?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 17:45 , Processed in 0.062439 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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