Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从网格的行创建列表的最佳方法是什么_Javascript_Extjs_Grid_Extjs5 - Fatal编程技术网

Javascript 从网格的行创建列表的最佳方法是什么

Javascript 从网格的行创建列表的最佳方法是什么,javascript,extjs,grid,extjs5,Javascript,Extjs,Grid,Extjs5,在我的应用程序中,有两个拖放网格 要创建列表,请将行从第一个网格拖动到第二个网格 发送此行列表(第二个网格)以便服务器在另一个网格中显示的最佳方式是什么 我试图同步并设置脏(true),但“Ext.data.Model#setDirty”已被弃用 var grid = this.lookupReference('gridRef'); var store = grid.getStore(); store.each(function(record){ reco

在我的应用程序中,有两个拖放网格

要创建列表,请将行从第一个网格拖动到第二个网格

发送此行列表(第二个网格)以便服务器在另一个网格中显示的最佳方式是什么

我试图同步并设置脏(true),但“Ext.data.Model#setDirty”已被弃用

    var grid = this.lookupReference('gridRef');
    var store = grid.getStore();
    store.each(function(record){
        record.setDirty(true);
    });

    store.sync();
我试过,但没有成功:

    var grid = this.lookupReference('gridRef');
    var store = grid.getStore();
    grid.getSelectionModel().selectAll(); 
    var selection = grid.getSelectionModel().getSelection();
    var values = [];

    for(var i=0; i<selection.length; i++) {
        values.push(selection[i].get('order'));
        values.push(selection[i].get('item'));
    }

     var model = Ext.create('app.myModel', values);
     console.log(model) //show just one item
     ????

要在单个
Ext.Ajax.request
中将整个范围的记录从存储区发送到服务器,您可以尝试:

Ext.Ajax.request({
    url:'testURL',
    jsonData:store.getRange()
});

或者,您可以在记录中有一个特殊字段,其中包含记录是否在列表中。将非持久性布尔字段设置为defaultValue
false
,并将其设置为true。瞧,这张唱片应该是脏的。

谢谢你,亚历山大。getRange()工作得很好。但是,我得到了以下错误:uncaughtrangeerror:超过了最大调用堆栈大小。我用我的代码编辑了我的问题。对不起,忘了你必须从记录中提取数据。记录包含指向存储的链接,其中包含指向记录的链接。。。如果将其序列化为一个简单的树,那么它将是无限的。请尝试
store.getRange().map(函数(记录){return record.getData()})
。再次感谢。
Ext.Ajax.request({
    url:'testURL',
    jsonData:store.getRange()
});