我有一个formpanel,它在点击我的网格中的公司后显示信息。 这是我在网格上的clickevent的处理程序:
var onCompanyGridClickHandler = function (grid, rec) {
Ext.Ajax.request({
url: '../GetCompany',
params: { id: rec.get('id') },
success: function (res) {
//Fill Fields with values
companyFormValues = JSON.parse(res.responseText);
companyInfoFormPanel.getForm().setValues(companyFormValues);
}
});
};
所以每当我点击网格时,表单都会获得新值。 如何实现脏更改侦听器,当我更改表单值时,它会提醒我保存更改。
我试图在网格上的一个beforeclick事件中触发isdirty,但它没有工作,我得到的只是每个表单上的脏更改都会发生变化。
答案 0 :(得分:1)
这应该有用。
var onCompanyGridClickHandler = function (grid, rec) {
form = companyInfoFormPanel.getForm();
if(!form.isDirty()){
Ext.Ajax.request({
url: '../GetCompany',
params: { id: rec.get('id') },
success: function (res) {
//Fill Fields with values
companyFormValues = JSON.parse(res.responseText);
companyInfoFormPanel.getForm().setValues(companyFormValues);
}
});
}
else{
Ext.Msg.alert("Warning", "Please save the data!!")
}
};
简单Working fiddle供参考。
缺少trackResetOnLoad:true
更新小提琴:Updated