我有一个网格面板,我在其中显示记录数。有2个按钮,“Update
”和“Close
”。
如果我们点击“close
”按钮,那么应该看看是否有任何待处理记录,如果是,那么它应该告诉用户完成它,
如果没有,那么它将重定向到另一个URL。
在'dockedItems
'中有一个关闭按钮。在那里我必须写出逻辑。我知道,我必须使用isDirty()
函数,但我需要指导如何使用它。
{
xtype : 'gridpanel',
region: 'center',
title : 'Search Results',
id : 'searchResultsGrid',
plugins: [{
ptype: 'cellediting',
listeners: {
beforeedit : function (editor, context, eOpts) {
console.log('beforeedit');
},
edit : function (editor, context, eOpts) {
console.log('edit');
},
canceledit : function (editor, context, eOpts) {
console.log('canceledit');
}
}
}],
columnLines : true,
autoScroll : true,
selModel : new Ext.selection.CheckboxModel({
checkOnly: true,
enableKeyNav: false,
allowDeselect: true,
deselectOnContainerClick: false
}),
border : true,
resizable : true,
columns : gridColumnList,
store : {
model : poModel,
proxy : new Ext.Hmhco.SFDCProxy({
sessionId: '{!$Api.Session_ID}',
model: poModel,
url: "https://" + location.hostname + "/services/data/v31.0/"
})
},
dockedItems: [{
xtype: 'toolbar',
items: [{
itemId: 'update',
text: 'Update',
handler: function(button, evt) {
var grid = Ext.getCmp('searchResultsGrid'),
ds = grid.getStore();
ds.sync({
success : function (batch, options) {
console.log('Sync Success!');
},
failure : function (batch, options) {
var errorList = [],
exceptionList = batch.getExceptions();
for (var i = 0; i < exceptionList.length; i++) {
var err = exceptionList[i].getError();
errorList.push({
url: err.request.getUrl()
});
}
exceptionList = 1;
console.dir(errorList);
}
});
}
},'-', {
itemId: 'close',
text: 'Close',
handler: function(button, evt) {
// TO DO : It should see if there are pending updates (store.isDirty()) and confirm the close with the user via an Ext.Msg method.
}
}]
}], // dockedItems
}],
答案 0 :(得分:0)
我不认为isDirty
会对此有所帮助。 IMO这里的最佳选择是使用Ext.Data.Store.getModifiedRecords()
和Ext.Data.Store.getRemovedRecords()
。如果任何此函数返回非空数组,则表示您有一些待更新的记录需要更新。