jQuery MiniUI

标题: CellEdit 单元格编辑+换页问题 [打印本页]

作者: johnconner    时间: 2012-12-12 16:28:03     标题: CellEdit 单元格编辑+换页问题

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

监听beforeload事件试试。
如果你需要更多的分页控件的事件,建议把grid的分页隐藏,showfooter="false",然后用分页控件来做
参考demo:http://www.miniui.com/demo/index.html#src=datagrid/diypager.html
作者: johnconner    时间: 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事件吗?麻烦您给几句实例代码看看,谢谢!
作者: factory    时间: 2012-12-13 09:31:24

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

是监听该pa ...

如果用自定义的pager控件,直接监听onpagechanged事件
作者: johnconner    时间: 2012-12-13 11:26:35

factory 发表于 2012-12-13 09:31
如果用自定义的pager控件,直接监听onpagechanged事件

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

作者: factory    时间: 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;
    }
});
作者: johnconner    时间: 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);
}
这是为什么呢?

作者: factory    时间: 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;
    }
});
作者: johnconner    时间: 2012-12-13 14:46:16

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

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




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