www.®olandsee.net

... all kinds of stuff

ScriptManager in Masterpage einbinden

by rolosee 28. May 2008 07:07

Die Arbeit mit ASP.NET AJAX ist eine prima Sache. Mit relativ geringem Aufwand lassen sich AJAX Funktionalitäten in einer Website integrieren. Auf der "AJAX-enabled" aspx-Seite wird im Normalfall innerhalb des Forms der ScriptManager registriert und schon ist auf dieser Seite z.B. das UpdatePanel anwendbar: <asp:ScriptManager ID="ScriptManager1" runat="server" />.   Bisher bin ich davon ausgegangen, dass bei Verwendung des AJAX ControlToolKits ACT mit all seinen schönen Extender Controls statt des herkömmlichen ScriptManagers der zugehörige AjaxControlToolKitScriptManager eingebunden werden muss: <ajaxToolkit:ToolkitScriptManager ID="ScriptManager1" runat="server" />.

Probleme sind aufgetreten, als ich auf einer aspx-Seite mit dem ACT-ScriptManager ein Usercontrol eingebunden habe, welches einen ScriptManagerProxy benötigte, da auf einer aspx-Seite nur EIN ScriptManager erlaubt ist. Es gibt jedoch keinen ScriptManagerProxy für das ACT. Ein befreundeter Entwickler gab mir den Tipp, doch statt des ACT ScriptManagers den herkömmlichen ScriptManager wieder einzubinden. Der ACT ScriptManager wird vom ScriptManager abgeleitet, so dürften hier keine Probleme zu erwarten sein. Nun ist es auch bei der Arbeit mit einer Masterpage möglich, mit dem ScriptManager, dem ScriptManagerProxy und mit dem ACT zu arbeiten.

Mögliche Einbindung des ScriptManagers im Codebehind der Masterpage:

        /// <summary>
        /// preInit event
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected override void OnPreInit(EventArgs e)
        {
            //adds a global scriptManager to the form in masterpage
            //to use it for Ajax in ascx controls via scriptManagerProxy
            if (ScriptManager.GetCurrent(this.Page) == null)
            {
                ScriptManager Manager = new ScriptManager();
                Manager.EnablePartialRendering = true;

                foreach (Control c in this.Controls)
                {
                    if (c is HtmlForm)
                    {
                        c.Controls.AddAt(0, Manager);
                    }
                }
            }
            base.OnPreInit(e);
        }

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Ajax | WEB 2.0

Related posts

Add comment


(Will show your Gravatar icon)  

  Country flag




Live preview

August 19. 2008 23:59

Gravatar

Powered by BlogEngine.NET 1.1.0.7
ASP.NET Version: 2.0.50727.1433

der Autor

Roland See Roland See
Senior Software Developer bei JobScout24. Weitere Infos gibt es hier.
Wickendorf, Oberfranken, Deutschland.

E-Mail Send mail

Letzte Beiträge

Disclaimer

Bei den in diesem Blog ausgedrückten Meinungen handelt es sich ausschließlich um meine persönlichen Ansichten.

© Copyright 2008

einloggen