2009-05-15 4 views
2

Ich versuche, eine mit Dotnetnuke erstellte Webanwendung bereitzustellen. Es gibt ein DNN Control/ASCX mit einem MultiView und wenigen AjaxToolkit Controls wie AutoComplete, ModalPopup. In Views sind andere (normale) ASCXs enthalten, von denen einige UpdatePanel haben.Extender-Steuerelemente müssen mit RegisterExtenderControl() registriert werden, bevor RegisterScriptDescriptors() aufgerufen wird

Auf dem Entwicklungscomputer (WinXp/ASP.NET Web Server) gibt es keinen Fehler ... aber wenn ich versuche, es auf dem Server bereitzustellen, erhalte ich den obigen Fehler.

+0

Server ist Windows 2003 SP2 mit .NET 3.5 SP1. AjaxToolkit ist nicht auf dem Server installiert, sondern seine DLL befindet sich im Ordner 'bin' der Anwendung –

Antwort

1

Ich habe versucht, die neueste AjaxToolkit Release, aber ein Problem gleich geblieben ...

Es scheint, dass es etwas mit Multiview zu tun hat, die Steuerung selbst dynamisch in DNN wird geladen. Durch das Entfernen von MultiView wurde das Problem behoben.

Die Produktionsstätte läuft eine etwas ältere Version von Dotnetnuke, und der Entwickler verwendet die neueste Dotnetnuke. Dies könnte das Problem sein ... Wir haben jedoch versucht, die Option SupportsPartialRendering von DNN zu deaktivieren und ScriptManager selbst hinzuzufügen ... aber das Problem wurde nicht gelöst.

1

Auch hatte ich das gleiche Problem während PopupControlExtender verwenden, aber das Problem behoben wurde, wenn ich die „OffsetX“ Tag von PopupControlExtender

0

entfernt Wenn Sie eine deklarative Anweisung in der Benutzersteuerung oder Seitensteuerung in asp verwenden. net dann fügen Sie den folgenden Code in Ihre page.it sollte ohne Fehler funktionieren.

protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 

     if (this.DesignMode == true) 
     { 
      this.EnsureChildControls(); 
     } 
     this.Page.RegisterRequiresControlState(this); 
    } 
0

Immer noch bekomme ich den gleichen Fehler.

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e); 

    if (this.DesignMode == true) 
    { 
     this.EnsureChildControls(); 
    } 
    this.Page.RegisterRequiresControlState(this); 
} 

protected override void RenderContents(System.Web.UI.HtmlTextWriter writer) 
{ 
    EnsureChildControls(); 
    foreach (Control control in Controls) 
    { 
     control.RenderControl(writer); 
    } 
} 
0

Diese Lösung funktioniert in VS 2010 und VS 2012 auf Seite Ereignisse

protected void Page_Init(object sender, EventArgs e) 
{ 
    { 
    base.OnPreRender(e); 
    ToolkitScriptManager1.RegisterExtenderControl(HoverMenuExtender1, Page); 
    } 

} 
Verwandte Themen