René 's Weblog
...und was die Welt schon immer nicht wissen wollte
Ajax-Toolkit und die Webkit Browser
Zugriffe:1353Bewertung:0(0Bewertungen)25.06.2009 - René Drescher-Hackel
Heute habe ich nicht schlecht gestaunt, als ich mich wieder einmal intensiver als üblich mit dem Ajax-Toolkit auseinander gesetzt habe.
Ob man will oder nicht, hin und wieder ist man gezwungen gehalten Controls aus dem Ajax-Toolkit einzusetzen. Was man gerne dabei vergisst, ist die Tatsache,
dass das Toolkit weiterentwickelt wird.

Und so habe ich heute aus gegebenen Anlass die Assembly einmal aktualisiert - warum eigentlich nur??

Hintergrund des ganzen war ein Problem, welches ich hatte mit den Webkit-Browsern Safari und Chrome. Beide Browser hatten ein Problem damit, wenn man
Controls aus dem Ajax-Toolkit innerhalb eines Updatepanels lädt. Sicher wird der eine oder andere sagen: dann löse es anders, verzichte auf Updatepanel und Ajax-Toolkit. Ja, stimme ich voll zu, doch gelegentlich werden politische Entscheidungen getroffen, an denen dann nur schwer ein Weg vorbei führt - doch lassen wir dieses Thema. Es ist wie es ist und eine Lösung musste her.

Wie gesagt, die o.g. Webbrowser hatten gelegentlich ein Problem mit dieser Konstellation. Es schien, als würde der Webrequest nicht vollständig verarbeitet werden. Beim Debuggen und der ersten Fehleranalyse vor gut einem Jahr  kam ich darauf, dass das Problem wohl in einem Scriptfehler irgendwo in den Scripten des Ajax-Toolkit liegt. Ich hatten nicht wirklich Lust, das weiter zu verfolgen - bis heute. Heute hat mich dann die ganze Angelegenheit wieder eingeholt - und ich muss sagen, am Ende waren es gerade mal knapp 2 Stunden Zeit, die ich investieren musste, um zu einer Lösung zu gelangen.

Was mich an der ganzen Geschichte am meisten aber ärgert ist, dass es denn keiner bislang geschafft hat, das Ajax-Toolkit in dieser Hinsicht gescheit zu aktualisieren.

Die Lösung fand ich letztlich im ASP.NET-Forum hier.
Eine kleine Scriptdatei mit folgendem Inhalt sollte man sich erstellen:

Sys.Browser.WebKit = {}; //Safari 3 is considered WebKit
if( navigator.userAgent.indexOf( 'WebKit/' ) > -1 ) {
    Sys.Browser.agent = Sys.Browser.WebKit;
    Sys.Browser.version = parseFloat( navigator.userAgent.match(/WebKit\/(\d+(\.\d+)?)/)[1]);
    Sys.Browser.name = 'WebKit';
}

Das Ganze dann im Scriptmanager wie folgt einbinden:

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Scripts>
        <asp:ScriptReference Path="~/Scripts/Safari3AjaxHack.js" />
    </Scripts>
</asp:ScriptManager>

Fertig. Super!

Auf dem Weg zu dieser Lösung war ich auch schon dabei - wie oben erwähnt - das Ajax-Toolkit zu aktualisieren. Also aktuelle Version herunter geladen und eingebunden. Auch mal die Scripte geholt und über den Scriptmanager vom ScriptPath geladen. Hier kam dann die nächste Überraschung. Die Scripte passten in der Versionsnummer nicht zu der im Downloadbereich  angebotenen Assembly. So kann das nicht funktionieren. Vielleicht bemerkt es ja mal jemand...

Am Ende dachte ich so: wie schön könnte AJAX sein, wenn man das alles nicht bräuchte...
Kick it on dotnet-kicks.de
sehr gutungenügend

Chris ClussKommentar von Chris Cluss am 26.06.2009:
Das Problem kannst Du beheben, wenn Du in die Webeigenschaften im VSTudio oder Webdeveloper gehst und einemal zwischen .NET 2.0 und .NET 3.5 hin und her wechselst. Adnn passen sich alle Assemblyversionen an. Ich nutze inzwischen jQuery bzw. DotNetAge(benutzt jQuery als .NET Webcontrols und kann ähnlich wie das Toolkit angewendet werden) http://nibblersrevenge.cluss.de/archive/2009/06/26/jquery-vs.-ajax-toolkit.aspx
Ihr Kommentar zu diesem Beitrag:
your gravatar
Sollten die Eingabefelder deaktiviert sein, so aktualisieren Sie den Bestätigungscode.
Best&auml;tigungscode
Das Weblog von René Drescher-Hackel beschäftigt sich überwiegend mit Themen aus dem Bereich der Webanwendungsentwicklung mit den Themenschwerpunkten ASP.NET und C# im DOT-NET Framework 2.0 / 3.5. In der clientseitigen Entwicklung liegt der Schwerpunkt bei Javascript und jQuery. René; Drescher-Hackel hat die Prüfung zum Microsoft Certified Tecnology Specialist - .NET Framework 2.0 Web Applications abgelegt.