jQuery MiniUI

标题: Grid复制数据 [打印本页]

作者: guyu008    时间: 2015-11-5 10:57:33     标题: Grid复制数据

比如我现在同一个界面有两个grid分别是grid1和grid2,我在grid1上选中某条数据或者多条转到grid2来。但是在grid2提交的后台的时候没有数据,所以我觉得添加到grid2的数据是不是虚拟的。[attach]6758[/attach]

作者: felt    时间: 2015-11-5 11:04:15

http://www.miniui.com/demo/#src=datagrid/moveitems_copy.html
参考示例,复用数据请先克隆
作者: guyu008    时间: 2015-11-5 11:30:24

felt 发表于 2015-11-5 11:04
http://www.miniui.com/demo/#src=datagrid/moveitems_copy.html
参考示例,复用数据请先克隆 ...

不需要做一些什么改变吗?提交后台data还是null
作者: guyu008    时间: 2015-11-5 11:49:52

guyu008 发表于 2015-11-5 11:30
不需要做一些什么改变吗?提交后台data还是null

保存数据时会var data = grid.getChanges();  但是在复制数据的时候,我如何能改变克隆数据的状态,改为已被改变的数据,用grid.getChanges();能获取到
作者: felt    时间: 2015-11-5 12:00:55

guyu008 发表于 2015-11-5 11:49
保存数据时会var data = grid.getChanges();  但是在复制数据的时候,我如何能改变克隆数据的状态,改为 ...

http://www.miniui.com/demo/#src=datagrid/moveitems_copy.html
不明白你有什么问题,看示例,移动到第二个表格内,getChanges可以获取到新增的数据
作者: guyu008    时间: 2015-11-5 14:45:31

felt 发表于 2015-11-5 12:00
http://www.miniui.com/demo/#src=datagrid/moveitems_copy.html
不明白你有什么问题,看示例,移动到第 ...

比如说我grid1的数据是从数据库取出来的,是没有_state那个属性的,当我复制到第二个grid2同样也会没有这个属性。那么在grid2保存数据的时候,那个getChanges()只会获取_state等于(added,modify,delete)的数据。就算用getData也得不到那个属性去后台判断。你的那个例子应该初始化的数据就会有_state的值
作者: felt    时间: 2015-11-5 15:38:15

guyu008 发表于 2015-11-5 14:45
比如说我grid1的数据是从数据库取出来的,是没有_state那个属性的,当我复制到第二个grid2同样也会没有这 ...

你所说的复制到grid2是怎么操作的,用我们addRow方法新增肯定有_state
作者: guyu008    时间: 2015-11-5 15:46:17

felt 发表于 2015-11-5 15:38
你所说的复制到grid2是怎么操作的,用我们addRow方法新增肯定有_state

//转应付
function onReleYf(){

        var ysDetailDataGrid = mini.get("ysDetailDatagrid");//得到列表
       
        var yfDetailDataGrid = mini.get("yfDetailDatagrid");
       
        //得到选择行事件
        var record = ysDetailDataGrid.getSelecteds();
       
        var items = mini.clone(record);

         //根据id判断,去除重复的item
    for (var i = items.length - 1; i >= 0; i-- ) {
        var item = items;
        var item2 = yfDetailDataGrid.findRow(function (row) {
            if (row.shipmentNo == item.shipmentNo) return true;
        });
        if (item2) {
            items.removeAt(i);
        }
    }
    yfDetailDataGrid.addRows(items);
       
}

上面是grid1克隆数据到grid2,那么下面是grid2在保存的时候用的是var data = grid.getChanges();如果用getData全部数据也没有。但是后台是通过_STATE属性来判断进行增删改的


作者: felt    时间: 2015-11-5 16:13:20

guyu008 发表于 2015-11-5 15:46
//转应付
function onReleYf(){

addRows添加的没保存过,getChanges肯定可以获取到
http://www.miniui.com/demo/#src=datagrid/moveitems_copy.html
把saveData方法里面的getData换成getChanges,一样可以获取
作者: felt    时间: 2015-11-5 16:16:38

guyu008 发表于 2015-11-5 15:46
//转应付
function onReleYf(){

[attach]6760[/attach]





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