2017-02-21 88 views
0

我使用了現成的腳本ajaxToolkit的組合功能ToolkitScriptManager如:AjaxControlToolkit結合腳本Sys.Extended.UI不確定

<ajaxToolkit:ToolkitScriptManager ID="manScript" runat="server" CombineScripts="true"></ajaxToolkit:ToolkitScriptManager> 

這工作得很好,腳本資源文件組合這是然而在某些網頁所期望的結果,那些利用ValidatorCallout的,正在打破由於腳本引用不被發現:

Uncaught TypeError: Cannot read property 'UI' of undefined

實施例:

Sys.Application.add_init(function() { 
    $create(Sys.Extended.UI.ValidatorCalloutBehavior, {"ClientStateFieldID":"ctl00_ucBookingOverlayForm_vceEmailRfv_ClientState","closeImageUrl":"/WebResource.axd?d=f1QpGIE3tIwIlwHDSgFaMKzu_EDD74IJxTW0wu5XFBsijDtCLxDaIo2PLWkvmpuVhGM3qlhvBO657x4jHl-GgLAybfgjNbFabkTpkICSknrDRSEDk5EuUA23IYRXprVpF1a4fg2\u0026t=636155032911179735","highlightCssClass":"error","id":"ctl00_ucBookingOverlayForm_vceEmailRfv","warningIconImageUrl":"/WebResource.axd?d=J2f54MGVNKrbG7KUyE1UxWfAcESo9_Mj-3_tX4cOIGXtDsrNI96CS2rrIj0oLhO9ioIMaeIGa4hw-cuLd_AbF7V_P4hYubyJCjWCGBeOh8DYw-SCx23Kl5noFRHYQAgpnIVCKOe3QyH3vNqc8QhIYA93_YU1\u0026t=636155032911179735"}, null, null, $get("ctl00_ucBookingOverlayForm_reqLocation")); 
}); 

由於某種原因,找不到Sys.Extended.UI.ValidatorCalloutBehavior。我猜測腳本組合功能不包括這個腳本?因爲通過設置CombineScripts="false"可以解決錯誤,但這不是解決方案,因爲我需要腳本組合功能。

我無法升級到新版本的AjaxControlToolkit,因爲我使用的CMS對此特定版本(4.1.60919.0)有依賴性。

回答

1

雖然我不能檢測到這種現象的原因,你可以嘗試將舊組件重定向到一個新的版本是這樣的:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="AjaxControlToolkit" publicKeyToken="28f01b0e84b6d53e" culture="neutral"/> 
      <bindingRedirect oldVersion="0.0.0.0-4.1.60919.0" newVersion="16.1.1.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime>