2011-01-06 35 views
1

Ich weiß, mein Problem ist sehr häufig und ähnliche Typen wurde oft hier gefragt, aber mein Problem ist etwas anders. Ich arbeite an ASP.Net 4.0 Web-Anwendung, wo auf meiner Seite habe ich Ajax Toolkit 4 Kalender-Steuerelement, Toolkitscript-Manager und einige asp-Steuerelemente. Von jetzt an mache ich eine Speicheroperation beim Klicken auf die Schaltfläche. Was ich will, ist das Popup-Fenster nach dem erfolgreichen Speichern zu schließen. Das Problem besteht nicht darin, zu speichern, sondern nach dem Speichern automatisch den Popup-Bildschirm zu schließen. Ich habe die folgende Art und Weise versucht:Javascript kann nicht von Codebehind aufgerufen werden

  1. RegisterStartUpScriptBlock (this.GetType, "Closeform", "Rückkehr window.close();") und alle anderen erforderlichen params
  2. ClientScript.RegisterStartupScript() --- alongwith params und mit beiden return window.close(); und window.close() auch mit self.close();
  3. Auch habe ich unter dem Titel-Tag ...

Ich glaube, ich die Art und Weise alle versucht haben, ich kann. Ich fühle mich verloren. Bitte helfen Sie mir ....

Antwort

1

, wenn Sie einen Skript-Manager auf der Seite mit ...

zuerst eine Funktion erstellen, den Kalender in js in Ihrem HTML zu schließen ...

function closeCalendar(){ 
    .... 
} 

dann auf der Code-Behind diese Funktion, dass js verwenden Anruf

string script = string.Format(@"closeCalendar()"); 

ScriptManager.RegisterClientScriptBlock(this, typeof(Page), UniqueID, script, true); 
+0

;-(Ich benutze keinen Skript-Manager. Ajax Control Toolkit 3.5+ erlauben keine ASP-Skript-Manager. Ich denke toolkitscriptmanager ist der Hauptgrund für solche Ereignisse –

+0

vielleicht eine Variation von diesem mit toolkitscriptmanager ... Ich bin nicht vertraut diese Kontrolle obwohl oder der Ajaxtoolkit 3.5+ – stephen776

+0

Danke Stephen, Scriptmanager arbeitete ... Vielen Dank ... –

1

Wenn das Popup Sie meinen das AJAX Toolkit Modal Popup ist, können Sie einfach popup.Hide(); in Code-Behind nennen.

Wenn es ein Browserfenster ist, haben Sie versucht, den return Teil aus Ihrem Code zu entfernen?

Beachten Sie, dass windows.close() nicht funktioniert, wenn das Popup über window.open() geöffnet wird;

Haben Sie auch versucht, das Skript-Tag einfach in das versteckte PlaceHolder-Steuerelement zu stellen (serverseitig Visible = false), das standardmäßig angezeigt wird und nur angezeigt wird, wenn Sie es benötigen?

+0

Ich glaube, er bezieht sich auf den Kalender als "Popup" – stephen776

+0

1. Nein, es ist ein Modaldialog, 2. Ich habe es versucht beide weg Fenster zu schließen. window.close() und self.close mit und ohne Rückkehr ... bitte helfen Sie mir, ich bin steckte –

+0

Haben Sie versucht, nur etwas wie modalDialog.Hide(); in Codebehind Code? – Meligy

Verwandte Themen