cacliffo
asked on
AjaxControlToolkit: sys.extended is undefined
Hello,
I just recently updated to the latest version of the AjaxControlToolkit and now my TabContainers don't work (only thing i'm using the toolkit for). It looks like the client code to make the correct tab visible is never getting called. The error I'm getting with Firefox is "Sys.Extended is undefined", and with IE I get "'Sys.Extended.UI' is null or not an object".
I'm using the .NET framework 3.5
1). I already changed all the ScriptManagers in my project to ToolkitScriptManagers per a javascript error message I was getting earlier.
2). I already checked my web.config and it looks good:
Any ideas? This was all working fine with the older version of the AjaxControlToolkit.
I just recently updated to the latest version of the AjaxControlToolkit and now my TabContainers don't work (only thing i'm using the toolkit for). It looks like the client code to make the correct tab visible is never getting called. The error I'm getting with Firefox is "Sys.Extended is undefined", and with IE I get "'Sys.Extended.UI' is null or not an object".
I'm using the .NET framework 3.5
1). I already changed all the ScriptManagers in my project to ToolkitScriptManagers per a javascript error message I was getting earlier.
2). I already checked my web.config and it looks good:
<?xml version="1.0"?><configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<appSettings/>
<connectionStrings>
<add name="csMMARSTestInfo" connectionString="Data Source=CLIFFORD-PV2\SQLEXPRESS;Initial Catalog=MMARS_Web_TestInfo_California;Persist Security Info=True;User ID=mmars;Password=secret" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<!--
Set compilation debug="true" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true">
<assemblies>
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies>
</compilation>
<!--
The <authentication> section enables configuration
of the security authentication mode used by
ASP.NET to identify an incoming user.
-->
<authentication mode="Windows"/>
<!--
The <customErrors> section enables configuration
of what to do if/when an unhandled error occurs
during the execution of a request. Specifically,
it enables developers to configure html error pages
to be displayed in place of a error stack trace.
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</controls>
</pages>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
</system.web>
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
<!--
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0. It is not necessary for previous version of IIS.
-->
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<remove name="ScriptModule"/>
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<remove name="ScriptHandlerFactory"/>
<remove name="ScriptHandlerFactoryAppServices"/>
<remove name="ScriptResource"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Any ideas? This was all working fine with the older version of the AjaxControlToolkit.
Same issue is logged with codeplex, but they are not yet resolved
Check the links for the same
http://ajaxcontroltoolkit.codeplex.com/WorkItem/View.aspx?WorkItemId=26751
http://ajaxcontroltoolkit.codeplex.com/WorkItem/View.aspx?WorkItemId=26755
I am able to find the similar issues, but none has answer/reason
http://forums.asp.net/t/1547447.aspx
http://forums.asp.net/t/1563310.aspx
Check the links for the same
http://ajaxcontroltoolkit.codeplex.com/WorkItem/View.aspx?WorkItemId=26751
http://ajaxcontroltoolkit.codeplex.com/WorkItem/View.aspx?WorkItemId=26755
I am able to find the similar issues, but none has answer/reason
http://forums.asp.net/t/1547447.aspx
http://forums.asp.net/t/1563310.aspx
ASKER
Ok, well for now I got our app working by deriving a new class from ToolkitScriptManager that sets this.CombineScripts to false, but I'd still like to get the script combining to work if possible.
I saw on a website somewhere that in order to do that you can copy the CombineScriptsHandler.ashx from the AjaxControlToolkit Sample Website and use it like this:
<ajaxToolkit:ToolkitScript Manager runat="server" CombineScriptsHandlerUrl=" ~/CombineS criptsHand ler.ashx" />
I'm trying to do this from a class rather than an aspx page, though. I've tried doing the following:
this.CombineScriptsHandler Url = new Uri(ResolveClientUrl("~/Co mbineScrip tsHandler. ashx"));
But I get an exception that says something along the lines of invalid uri. How do I get a Uri object that resolves to the right relative address? I don't want to have to hard code the path to the service.
I saw on a website somewhere that in order to do that you can copy the CombineScriptsHandler.ashx
<ajaxToolkit:ToolkitScript
I'm trying to do this from a class rather than an aspx page, though. I've tried doing the following:
this.CombineScriptsHandler
But I get an exception that says something along the lines of invalid uri. How do I get a Uri object that resolves to the right relative address? I don't want to have to hard code the path to the service.
to use toolkit script manager, .net 3.5 SP1 must be installed on your PC
ASKER
It is installed
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
will do, thanks
ASKER
Apparently an AjaxControlToolkit issue (and not the first I've ran into), i'm now considering switching to jQuery.
ASKER