程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Ext錯誤列表——回調函數如何傳參

Ext錯誤列表——回調函數如何傳參

編輯:.NET實例教程
在項目中,我碰到了這樣一個問題,以前是的問題描述和解決過程。

    點擊按鈕,彈出確認對話框,YES則回調函數處理,回調函數需要使用到一個對象——他的類型是Ext.grid.GridEdit:



handler : function() {
        Ext.MessageBox.confirm(''提示'', ''確實要保存修改記錄?'', DOSave);
}

    開始將doSave方法寫在function裡面,grid可以作為一個方法中的全局變量,可以被doSave使用,但這顯然是不對的,FireDebug下調試,也提示找不到DOSave方法。可能是方法中不能有另一個方法的定義吧。

    於是,我這樣更改了一下:



handler : function() {
        Ext.MessageBox.confirm(''提示'', ''確實要保存修改記錄?'', DOSave(grid));
}

    bug不存在了,但是新的問題出現了,我發現,不等我點YES或NO的按鈕,DOSave方法已經執行了。回頭一想,這樣寫恐怕就是直接的函數調用,而非回調函數。

    那麼如何在回調函數時,傳遞參數呢?google了一下,一個朋友的blog給了我一個啟發,他的做法是:



handler : function() {
        Ext.MessageBox.confirm(''提示'', ''確實要保存修改記錄?'', function() {DOSave(grid)});
}    問題解決了,我在function外,寫了DOSave的定義,斷點查看gird對象,它是一個完整的GridEdit。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved