Hi,
I have a ListGrid with deferred removal that shows data from a DataSource filtered by a field. When I attempt to perform a remove operation, I always get a JavaScript error when saving changes.
You can reproduce it by using the following code snippet:
	Steps to reproduce:
1- Mark for removal the two records in the ListGrid.
2- Confirm your removal by clicking the save button.
3- You will see that only one record gets removed, and find a JavaScript error in your browser console.
JavaScript error stack trace:
	Browser: Google Chrome 47.0.2526.111 m
SmartClient version: v10.1p_2016-01-21
							
						
					I have a ListGrid with deferred removal that shows data from a DataSource filtered by a field. When I attempt to perform a remove operation, I always get a JavaScript error when saving changes.
You can reproduce it by using the following code snippet:
Code:
	
	isc.RestDataSource.create({
    ID: "ds",
    fields: [
        {name: "pk", type: "sequence", primaryKey: true, hidden: true},
        {name: "fk", type: "sequence"},
        {name: "value", type: "sequence"}
    ],
    clientOnly: true,
    cacheData: [
        {pk: 1, fk: 1, value: 1},
        {pk: 2, fk: 1, value: 2},
        {pk: 3, fk: 2, value: 3},
        {pk: 4, fk: 2, value: 4}
    ]
});
isc.Button.create({
    ID: "saveBtn",
    title: "save",
    action: function() {
        list.saveAllEdits();
    }
});
isc.ListGrid.create({
    ID: "list",
    canRemoveRecords: true,
    deferRemoval: true,
    dataSource: ds,
});
list.fetchData({fk: 1});
isc.VLayout.create({
    ID: "testLayout",
    members: [
        saveBtn,
        list
    ]
});
1- Mark for removal the two records in the ListGrid.
2- Confirm your removal by clicking the save button.
3- You will see that only one record gets removed, and find a JavaScript error in your browser console.
JavaScript error stack trace:
Code:
	
	*17:16:35.472:TMR2:WARN:Log:TypeError: Cannot read property '0' of undefined
Stack from error.stack:
    get(<no args: exited>) on [ResultSet ID:isc_ResultSet_3 (dataSource: ds, created by: list)] @ ISC_DataBinding.js.jsf:45939:37
    discardEdits(<no args: exited>) on[ListGrid ID:list] @ ISC_Grids.js.jsf:53534:45
    removeDataComplete(<no args: exited>) on[ListGrid ID:list] @ ISC_Grids.js.jsf:55977:22
    fireCallback(callback=>Obj, argNames=>"dsResponse,data,dsRequest", args=>Array[3], target=>[ListGrid ID:list], catchErrors=>undef) on [Class RestDataSource] @ ISC_Core.js.jsf:6805:36
    fireCallback(callback=>Obj, argNames=>"dsResponse,data,dsRequest", args=>Array[3], catchErrors=>undef) on [RestDataSource ID:ds] @ ISC_Core.js.jsf:8653:32
    fireResponseCallbacks(dsResponse=>Obj, dsRequest=>Obj, rpcResponse=>Obj, rpcRequest=>Obj) on [RestDataSource ID:ds] @ ISC_DataBinding.js.jsf:18784:39
    _completeResponseProcessing(data=>Obj, dsResponse=>Obj, dsRequest=>Obj, rpcResponse=>Obj, rpcRequest=>Obj) on [RestDataSource ID:ds] @ ISC_DataBinding.js.jsf:18735:14
    callback(dsResponse=>Obj) on [RestDataSource ID:ds] @ ISC_DataBinding.js.jsf:16510:18
    _handleClientOnlyReply(rpcResponse=>Obj, data=>Obj, rpcRequest=>Obj) on [RestDataSource ID:ds] @ ISC_DataBinding.js.jsf:16518:22
    fireCallback(<no args: recursion>)  on [Class RPCManager] @ ISC_Core.js.jsf:6805:36
    fireCallback(<no args: recursion>)  on [RPCManager ID:builtinApplication] @ ISC_Core.js.jsf:8653:32
    fireReplyCallback(callback=>Obj, request=>Obj, response=>Obj, data=>Obj) on [Class RPCManager] @ ISC_DataBinding.js.jsf:41245:42
    fireReplyCallbacks(request=>Obj, response=>Obj) on [Class RPCManager] @ ISC_DataBinding.js.jsf:41308:18
    performOperationReply(request=>Obj, response=>Obj) on [Class RPCManager] @ ISC_DataBinding.js.jsf:41237:21
    _performTransactionReply(transactionNum=>20) on [Class RPCManager] @ ISC_DataBinding.js.jsf:41151:18
    fireCallback(<no args: recursion>)  on [Class Timer] @ ISC_Core.js.jsf:6805:36
    _fireTimeout(ID=>"_timeout180", tmrID=>435, delayedTmrID=>undef) on [Class Timer] @ ISC_Core.js.jsf:33271:10
    <anonymous>() @ ISC_Core.js.jsf:33193:19
SmartClient version: v10.1p_2016-01-21

Comment