You seem to be calling loadData() without passing a parameter (the json). Looks like you changed your mind about constructing the json and calling loadData but did not remove the call.
Code:
Test2EditorGrid.on('rowclick', function (TestEditorGrid, rowIndex, e) {
var row = Test2EditorGrid.getView().getRow(rowIndex);
var record = Test2DataStore.getAt(rowIndex);
var ProductName = record.get('ProductName');
var PriceEconomic = record.get('PriceEconomic');
alert(ProductName + PriceEconomic);
var TempJson = '{"Items": [{"ProductName": "' + ProductName + '","PriceEconomic":"' + PriceEconomic + '"}]}';
Test3DataStore.add(new Item({
ProductName: ProductName,
PriceEconomic: PriceEconomic
}));
Test3DataStore.loadData(); <-----
});