jQuery MiniUI

标题: datagrid的选中事件问题 [打印本页]

作者: aqaazsh    时间: 2014-3-31 11:11:57     标题: datagrid的选中事件问题

我的datagrid监听了select事件,onselect="onSelect"
在我的 function onSelect(e){
alert(e.reocrd);
grid.deselect(e.record,false);
}函数中当取消选中时会再次执行选中事件即会执行两次alert.
grid.deselect(e.record,false)方法中的参数false不是不激发选择事件吗。



作者: factory    时间: 2014-3-31 11:49:53

你要做禁止选中?

监听onbeforeselect事件

e.cancel = true来阻止选中
作者: aqaazsh    时间: 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时方法会再执行一次。

作者: factory    时间: 2014-3-31 17:08:22

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

因为你在点击行的时候,会激发一次,但是点击行的同时,还会选中当前单元格,内部有个setCurrent(),所以这个也会触发一次事件.
作者: aqaazsh    时间: 2014-3-31 17:26:58

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

那这种问题应该怎么解决,有API吗。
作者: felt    时间: 2014-3-31 17:34:22

aqaazsh 发表于 2014-3-31 17:26
那这种问题应该怎么解决,有API吗。

你现在需要的效果是啥
作者: aqaazsh    时间: 2014-3-31 17:57:52

felt 发表于 2014-3-31 17:34
你现在需要的效果是啥

就是选中的时候到数据库判断是否存在,如果存在就提示mini.alert();并且取消选中,但是目前会alert两次;
作者: lost    时间: 2014-3-31 18:17:37

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

因为内部还涉及到了单元格的选中,所有触发了2次。
作者: aqaazsh    时间: 2014-4-1 09:27:23

lost 发表于 2014-3-31 18:17
因为内部还涉及到了单元格的选中,所有触发了2次。

如何解决这种情况呢
作者: factory    时间: 2014-4-1 09:46:51

aqaazsh 发表于 2014-4-1 09:27
如何解决这种情况呢

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

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

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

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




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2