jQuery MiniUI

标题: 与Grid绑定的表单,取消编辑 [打印本页]

作者: netui    时间: 2013-9-27 16:20:19     标题: 与Grid绑定的表单,取消编辑



情况是这样:

现有表单与DataGrid表格,进行绑定了。

在编辑表单中的资料时,如果,想取消前面修改的资料。则表单中找不到取消的方法。

但是Grid表格有取消方法:grid.cancelEdit();

那表单要怎样取消,查了API没找到,也没相关帖子。


作者: factory    时间: 2013-9-27 16:22:32

是的,表单的话只能重新刷新加载一下.
作者: netui    时间: 2013-9-27 16:37:45

factory 发表于 2013-9-27 16:22
是的,表单的话只能重新刷新加载一下.

        function cancelData()
        {
            grid.cancelEdit();
            //var db = new mini.DataBinding();
            //db.bindForm("panel_sjzl", grid);//重新绑定表单
            var form = new mini.Form("#panel_sjzl");
            form.setData(grid.getSelected(),false);
       }

开始重新绑定不行,
后面setData也还是不行哦。


作者: factory    时间: 2013-9-27 16:44:20

netui 发表于 2013-9-27 16:37
function cancelData()
        {
            grid.cancelEdit();

你看下这个demo的setForm()
http://www.miniui.com/demo/index.html#src=form/form.html

你先setForm()录入修改几个数据,然后再点击setFrom()是可以恢复到原来数据的
作者: netui    时间: 2013-9-27 16:46:30

factory 发表于 2013-9-27 16:44
你看下这个demo的setForm()
http://www.miniui.com/demo/index.html#src=form/form.html

嗯,我等下先看看 mini.alert(mini.encode(grid.getSelected()));
这个取得的行数据是不是   还是修改后的数据。


作者: netui    时间: 2013-9-27 16:51:04

netui 发表于 2013-9-27 16:46
嗯,我等下先看看 mini.alert(mini.encode(grid.getSelected()));
这个取得的行数据是不是   还是修改后 ...

果真 mini.encode(grid.getSelected()) 取得数据,还是修改后的数据,

执行grid.cancelEdit();这一语句后, 没有效果,取得数据还是上面的。

执行grid.accept();这一语句后,就只有 _state":"modified" 这个没有了。但是数据还是修改后的数据,

数据它并没有还原哦。

所以,最后 form.setData(obj,false); 还是原来修改后的样子。


作者: netui    时间: 2013-9-27 16:54:33

factory 发表于 2013-9-27 16:44
你看下这个demo的setForm()
http://www.miniui.com/demo/index.html#src=form/form.html

另外,刚才有测试

grid.cancelEdit();
mini.alert(mini.encode(grid.getSelected()));

在Grid没有绑定表单的界面中, mini.alert(mini.encode(grid.getSelected())); 这个是可以取得修改前的资料。

这样就是对的。

但grid绑定了,表单,就不行了。

那这样看到,是不是在表格grid.cancelEdit();取消前, 先解除绑定 ?


作者: niko    时间: 2013-9-28 10:11:40

accept不是还原数据,是提交修改,清除修改痕迹
cancelEdit也不是用在数据绑定的场合,是取消表格单元格编辑的时候用的。
用reject和acceptRecord方法试试。
grid.acceptRecord(record); 撤销修改
作者: netui    时间: 2013-9-28 14:20:48

niko 发表于 2013-9-28 10:11
accept不是还原数据,是提交修改,清除修改痕迹
cancelEdit也不是用在数据绑定的场合,是取消表格单元格编 ...

嗯,昨天有使用下面的两个行操作,测试,也还是不行。

grid.cancelEditRow(grid.getSelected());
            //grid.cancelEdit();
            //grid.accept();
grid.acceptRecord(grid.getSelected());

把两句的位置换了下,也还是不行的。


作者: netui    时间: 2013-9-28 14:21:50

niko 发表于 2013-9-28 10:11
accept不是还原数据,是提交修改,清除修改痕迹
cancelEdit也不是用在数据绑定的场合,是取消表格单元格编 ...

另外,没有找到reject方法。
作者: niko    时间: 2013-9-28 17:42:09

grid有reject和rejectRecord方法。
我们测试是可以返回到修改前的数据的。

作者: netui    时间: 2013-9-30 10:45:27

niko 发表于 2013-9-28 17:42
grid有reject和rejectRecord方法。
我们测试是可以返回到修改前的数据的。

OK,我回去测试下!

Tks!
作者: netui    时间: 2013-10-2 10:19:53

niko 发表于 2013-9-28 17:42
grid有reject和rejectRecord方法。
我们测试是可以返回到修改前的数据的。

Tks!

完全可以,取得所需结果。


Niko


作者: netui    时间: 2013-10-2 10:21:43

niko 发表于 2013-9-28 17:42
grid有reject和rejectRecord方法。
我们测试是可以返回到修改前的数据的。

但是Reject和rejectRecord方法,在API中没有写出来哟。




作者: niko    时间: 2013-10-3 10:55:03

API已完善,下周更新
作者: netui    时间: 2013-10-3 16:03:37

niko 发表于 2013-10-3 10:55
API已完善,下周更新

嗯,好的!

另外还有一个问题:关于动态Panel

那我还是另外发贴吧。






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