2011-04-14 53 views
1

AjaxControlToolkit.TabPanel.prototype._header_onclick在將ajaxtoolkit 1.0升級到3.0後引發錯誤。AjaxControlToolkit.TabPanel.prototype._header_onclick拋出錯誤

下面是代碼

AjaxControlToolkit.TabPanel.prototype._header_onclick = function(e) { 
      this.raiseClick(); 
      if (isValidTabChange()) // add this additional code line to do validation 
       this.get_owner().set_activeTab(this); 
     }; 

該錯誤是AjaxControlToolkit是未定義和代碼拋出和錯誤。有沒有人遇到過這個問題?我可能做錯了什麼,我想知道有人已經解決了這個問題。

+0

我已經找到了解決這個。某些位置在AjaxControlToolkit的通道中,命名空間已從AjaxControlToolkit.TabPanel.prototype._header_onclick更改爲Sys.Extended.UI.TabPanel.prototype._header_onclick。這是一個噩夢,因爲我找不到解決方案,直到我打開ajax控件工具包代碼並在TabPanel上進行研究,發現相應的代碼並且名稱空間是Sys.Extended.UI。 – 2011-05-12 17:20:33

回答

0

他們在AjaxControlToolkit 4.1.7.1213或7.1213中將TabContainer UI修改爲jQuery。

所以你必須使用sysJExtended.UI中的actJQuery來訪問TabPanel方法。

actJQuery.ajaxControlToolkit.tabPanel.prototype._headerOnClick = function (e) { 
     e.preventDefault(); 

     if (confirm('Tabs are changing! Click OK to proceed, or click Cancel to remain on the current tab.')) { 
      this.options.owner.set_activeTab(this); 
      this.raiseClick(this); 
      this._header.focus(); 
     } else return false; 
    } 

提示:使用這個,如果你正在檢查任何控制在一個tabpanel改變

$('form :input').change(function() { 
     $(this).closest('form').data('changed', true); 
}); 

乾杯