EXT JS store.loadData()不附加数据

时间:2015-01-22 23:24:53

标签: extjs

我正在尝试使用store.loadData(data, true)将数据附加到现有商店,但由于某种原因,它正在清除商店并将其替换为新数据,只有当布尔值设置为false时才会将其替换为不。我需要做些什么才能确保将数据附加到旧数据而不是完全替换它?

编辑附加代码。目前,我正在从网格中拉出一行并创建一个新窗口,其中包含从数据库中提取的该对象的附加信息。我们的想法是,所有可能的行数据都存储在一个商店中,然后当窗口出现时,商店会添加一个过滤器,以便您只能看到与该特定对象相关的数据。在某些时候,我迭代网格中的每个对象,并检查它是否具有已编辑的数据。如果我只有来自最后一个被编辑对象的数据,那么这是一个问题。

editSelectedNode: function(grid, rowIndex, colIndex){
    var store = Ext.getStore('EditStore');
    var win = Ext.create('BOMGeneratorSencha.view.EditMenu', {});
    var item = grid.getStore().getAt(rowIndex).get('original'); 
    console.debug(item);
    win.show();
    var el = win.getEl();
    store.clearFilter(true);
    console.debug(store.getCount());
    if(store.getCount() == 0){
    el.mask('Loading Values');
    console.debug(store.getCount());
    Ext.Ajax.request({
            url : 'EditPart.jsp',   
            timeout: 300000,
            params : {
            item: item
            },
            success: function (response, opt) {
                el.unmask();
                var res = Ext.JSON.decode(response.responseText);
                if (res.success) {              
                    console.debug(res.results);
                    store.loadData(res.results,true);
                    console.debug(store);
                }
                else {
                    console.debug("JSON failure");
                    Ext.Msg.alert('Error', 'Invalid part number');
                }               
            },
            failure: function(response,options){
                console.debug("major failure");
                el.unmask();
                Ext.Msg.alert('Error', 'Connection failed<br>' + response.responseText);
            }
        });
    }
}

1 个答案:

答案 0 :(得分:0)

我有一个类似于你的代码。但是当我得到回应时,我不会使用

store.loadData(someData)

而是我使用以下步骤来加载数据(我的代码放在这里):

success: function(response, opts){
    var obj = Ext.decode(response.responseText)
        ,data = obj.data
        ,$ = Ext.ComponentQuery;

    var store = Ext.create('MyApp.store.SomeStore',{
        data : data 
    });
    $.query('SomeGrid')[0].bindStore(store);
    $.query('SomeGrid')[0].refresh();
}