jQuery MiniUI

 找回密码
 立即注册
查看: 2766|回复: 9
打印 上一主题 下一主题

datagrid的选中事件问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2014-3-31 11:11:57 |只看该作者 |倒序浏览
我的datagrid监听了select事件,onselect="onSelect"
在我的 function onSelect(e){
alert(e.reocrd);
grid.deselect(e.record,false);
}函数中当取消选中时会再次执行选中事件即会执行两次alert.
grid.deselect(e.record,false)方法中的参数false不是不激发选择事件吗。


Rank: 8Rank: 8

沙发
发表于 2014-3-31 11:49:53 |只看该作者
你要做禁止选中?

监听onbeforeselect事件

e.cancel = true来阻止选中

Rank: 3Rank: 3

板凳
发表于 2014-3-31 13:42:37 |只看该作者
本帖最后由 aqaazsh 于 2014-3-31 16:04 编辑
factory 发表于 2014-3-31 11:49
你要做禁止选中?

监听onbeforeselect事件

我的需求是在选择之前发送ajax请求判断,但是使用select事件时阻止选中时又会发送一条请求。
onbeforeselect也一样,只要e.cancel=true,同样也会发送两条请求。即相当于执行e.cancel时方法会再执行一次。

Rank: 8Rank: 8

地板
发表于 2014-3-31 17:08:22 |只看该作者
aqaazsh 发表于 2014-3-31 13:42
我的需求是在选择之前发送ajax请求判断,但是使用select事件时阻止选中时又会发送一条请求。
onbeforesele ...

因为你在点击行的时候,会激发一次,但是点击行的同时,还会选中当前单元格,内部有个setCurrent(),所以这个也会触发一次事件.

Rank: 3Rank: 3

5#
发表于 2014-3-31 17:26:58 |只看该作者
factory 发表于 2014-3-31 17:08
因为你在点击行的时候,会激发一次,但是点击行的同时,还会选中当前单元格,内部有个setCurrent(),所以这个 ...

那这种问题应该怎么解决,有API吗。

Rank: 8Rank: 8

6#
发表于 2014-3-31 17:34:22 |只看该作者
aqaazsh 发表于 2014-3-31 17:26
那这种问题应该怎么解决,有API吗。

你现在需要的效果是啥

Rank: 3Rank: 3

7#
发表于 2014-3-31 17:57:52 |只看该作者
felt 发表于 2014-3-31 17:34
你现在需要的效果是啥

就是选中的时候到数据库判断是否存在,如果存在就提示mini.alert();并且取消选中,但是目前会alert两次;

Rank: 8Rank: 8

8#
发表于 2014-3-31 18:17:37 |只看该作者
aqaazsh 发表于 2014-3-31 17:57
就是选中的时候到数据库判断是否存在,如果存在就提示mini.alert();并且取消选中,但是目前会alert两次; ...

因为内部还涉及到了单元格的选中,所有触发了2次。

Rank: 3Rank: 3

9#
发表于 2014-4-1 09:27:23 |只看该作者
lost 发表于 2014-3-31 18:17
因为内部还涉及到了单元格的选中,所有触发了2次。

如何解决这种情况呢

Rank: 8Rank: 8

10#
发表于 2014-4-1 09:46:51 |只看该作者
aqaazsh 发表于 2014-4-1 09:27
如何解决这种情况呢

你可以监听onselect 事件和 onbeforeselect事件

用个变量 onbeforeselect里面后台获取是否允许选中,e.cancel = true;并且赋值给变量

然后onselect 获取这个变量,判断下,做下alert()

onselect 只会触发一次.所以不会弹出2次

Archiver|普加软件

GMT+8, 2024-11-27 08:32 , Processed in 1.079130 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部