jQuery MiniUI

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

CellEdit 单元格编辑+换页问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2012-12-12 16:28:03 |只看该作者 |倒序浏览
高手们你好,我在项目中使用了CellEdit,当用户在行内编辑完没保存就点击下一页或上一页时,数据是无法保存的,将导致编辑后的数据丢失,现在我想在点击换页按键时加个if(grid.getChanges().length>0)的判断提示用户先保存再换页,但是又没找到grid最下面一行换页行内的换页按键在哪,换页事件也看不到,不知道该怎么做?请指教。谢谢~

Rank: 8Rank: 8

沙发
发表于 2012-12-12 17:14:40 |只看该作者
监听beforeload事件试试。
如果你需要更多的分页控件的事件,建议把grid的分页隐藏,showfooter="false",然后用分页控件来做
参考demo:http://www.miniui.com/demo/index.html#src=datagrid/diypager.html

Rank: 3Rank: 3

板凳
发表于 2012-12-13 08:41:26 |只看该作者
factory 发表于 2012-12-12 17:14
监听beforeload事件试试。
如果你需要更多的分页控件的事件,建议把grid的分页隐藏,showfooter="false",然 ...

首先感谢您的回答,我如果按照您说的使用自定义分页page,那该如何在换页事件执行前加判断?
<div id="pager1" class="mini-pager" style="width:380px;" sizeList="[5,10,20,100]"></div>
是监听该page的beforeload事件吗?麻烦您给几句实例代码看看,谢谢!

Rank: 8Rank: 8

地板
发表于 2012-12-13 09:31:24 |只看该作者
johnconner 发表于 2012-12-13 08:41
首先感谢您的回答,我如果按照您说的使用自定义分页page,那该如何在换页事件执行前加判断?

是监听该pa ...

如果用自定义的pager控件,直接监听onpagechanged事件

Rank: 3Rank: 3

5#
发表于 2012-12-13 11:26:35 |只看该作者
factory 发表于 2012-12-13 09:31
如果用自定义的pager控件,直接监听onpagechanged事件

用自定义pager控件监听onpagechanged事件可以加判断了
但是当我判断完该如何终止当前事件继续执行?
if(grid.getChanges().length>0){
  mini.alert("数据尚未保存!");
  //这里如何写终止换页?
}

Rank: 8Rank: 8

6#
发表于 2012-12-13 13:57:36 |只看该作者
johnconner 发表于 2012-12-13 11:26
用自定义pager控件监听onpagechanged事件可以加判断了
但是当我判断完该如何终止当前事件继续执行?
if(g ...

1.pager控件今天新增了beforepagechaned事件,来阻止分页。下周更新下载就可以用了
2.你先用我之前说的grid的beforeload事件来做吧
grid.on("beforeload", function (e) {
    var data = grid.getChanges();
    if (data.length > 0) {
        alert("请先保存");
        e.cancel = true;
    }
});

Rank: 3Rank: 3

7#
发表于 2012-12-13 14:02:03 |只看该作者
johnconner 发表于 2012-12-13 11:26
用自定义pager控件监听onpagechanged事件可以加判断了
但是当我判断完该如何终止当前事件继续执行?
if(g ...

求解,我return false;也不管用,无意当中这样就实现了,这是为什么?

if(grid.getChanges().length>0){
  mini.alert("数据尚未保存!");
  grid.setChanges(0);
}
这是为什么呢?

Rank: 8Rank: 8

8#
发表于 2012-12-13 14:11:17 |只看该作者
johnconner 发表于 2012-12-13 14:02
求解,我return false;也不管用,无意当中这样就实现了,这是为什么?

if(grid.getChanges().length>0){ ...

现在就是用一个表格,并不是额外用pager控件做的了,这段代码没效果吗?
grid.on("beforeload", function (e) {
    var data = grid.getChanges();
    if (data.length > 0) {
        alert("请先保存");
        e.cancel = true;
    }
});

Rank: 3Rank: 3

9#
发表于 2012-12-13 14:46:16 |只看该作者
factory 发表于 2012-12-13 14:11
现在就是用一个表格,并不是额外用pager控件做的了,这段代码没效果吗?
grid.on("beforeload", function ...

有效果,但是每次对表格执行操作只要data.length>0都会弹出提示,其实只要以footer为对象就行吧?我还是先用自定义footer吧,刚才我那种方法就能实现。谢谢啦

Archiver|普加软件

GMT+8, 2024-11-26 03:30 , Processed in 1.043659 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部