2011-05-19 61 views
1

表單加載後會觸發哪個事件?我的要求是在視負荷基於一些condation某些控件設置爲禁用模式的時間(只讀) 所以如何處理這個我(這事件) 試試這個formpanel.on({ actioncomplete: function (form, action) {}但IST沒有被解僱提前ExtJS表格加載

感謝

回答

4

我假設你在記錄/數據加載到表單後發生事件。行動得到處理在basicForm和電話。內basicFormload()電話doAction()所以你應該能夠使用從basicForm

actioncomplete下列事件:(此表格,動作 動作)時的動作是 完成觸發。

actionfailed :(形式,動作 action)動作失敗時觸發。

beforeaction :(形式這,行動 行動)執行任何行動之前觸發 。返回false取消 操作。

+0

感謝您的重播,我已經嘗試beforeaction但它沒有被解僱,而且我已經嘗試過這種「Ext.getCmp(」 PeopleSearchFormPanel 「).getForm()。on({beforeaction:function(a,o){debugger; Ext.getCmp('btaAdd')。disable();}});」,,但它沒有被解僱 – MNR 2011-05-19 07:20:12

+0

@MNR必須在你的代碼中出現錯誤...'load()'內部調用'doAction()'並觸發'beforeaction'事件... – sra 2011-05-19 08:03:55

5

我今天就這樣掙扎着。要記住的重要一點是,沒有事件form.loadRecord()被解僱,因爲它只是一個setValues()包裝。如果您想要在loadRecord()上觸發活動,您需要自行定義Ext.form.Basic(並可能將活動添加到中繼活動Ext.form.Panel中)。

0

您可以使用Ext.util.Observable.capture觀察Observable上的事件。這裏是一個被加載,然後提交觀察形式的一個例子:

http://jsfiddle.net/el_chief/HBah5/4/

我看到這些事件:

fieldvaliditychange
fielderrorchange
validitychange
dirtychange
beforeaction(我打提交)
afterlayout
actionfailed(它沒有提交給ywhere)

不要忘記,BasicForm有它自己的事件(儘管我相信它們都被轉發到Form),就像表單中的Fields一樣。

更改basic.trackResetOnLoad改變一些事件也一樣,尤其是「dirtychange」