formpanel中的Dirtychange更改事件

时间:2014-02-10 11:05:33

标签: events extjs extjs4 extjs4.2

我有一个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,但它没有工作,我得到的只是每个表单上的脏更改都会发生变化。

1 个答案:

答案 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