2009-08-26 11 views
0

Ich habe ein AJAX Modalpopup welches ich gerne beim Laden einer Seite starten würde. Derzeit habe ich folgendes in meinem Page_Load:Modales Popup auf Body Onload starten

HtmlGenericControl myBody = (HtmlGenericControl)Master.FindControl("thebody"); 
myBody.Attributes.Add("onload", "openMP();") 

Diese injiziert erfolgreich die onload-Funktion (I, indem man die Quelle sagen kann). Die Onload-Funktion scheint jedoch nie zu zünden. Jeder Rat wäre hilfreich. Vielen Dank.

* Änderungen folgende Frage *

Relevante Code in Masterseite:

<asp:LoginView ID="LoginView1" runat="server"> 
      <LoggedInTemplate> 
      <a href="logout.aspx"> 

Relevante Code in Kinder Seite:

if (!Page.IsPostBack) 
    { 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "openMP();", true); 
     Response.Write("Test"); 
    } 

Antwort

1

Sie können bei ClientScript.RegisterStartupScript suchen. Hier ist ein Beispiel dafür, wie man sie umsetzen könnte:

Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", 
    "openMP();", true); 

Im Page_Load Fall würde dies Feuer jedes Mal, wenn die Seite geladen wird.

EDIT: Aus Gründen der Klarheit willen, ist hier ein Beispiel dafür, was ich spreche in meinem Kommentar:

ASPX Seite-Code-behind:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", 
      "openMP();", true); 
} 

ASPX Seite:

<Form ID="Form1"> 
. 
. 
. 
</Form> 
<Script Language="javascript"> 
    function openMP() { 
     ... 
    } 
</Script> 
+0

Ich habe dies in mein Page_Load-Ereignis eingefügt, und die Seite scheint sich ständig zu aktualisieren (ich sehe das modale Popup nie, nur die primäre Seite wird immer wieder neu geladen). Irgendeine Idee warum das sein könnte? Danke für Ihre Hilfe. –

+0

Ich vermute, dass Ihre OpenMP-Funktion ein Postback ausführt? Wenn das der Fall ist, würden Sie in einer Endlosschleife stecken bleiben. Eventuell möchten Sie das RegisterStartupScript konditionieren, um dies zu vermeiden. – CAbbott

+0

Folgendes ist in openMP: document.getElementById ("ctl00_LoginView1_Button1"). Click(); (Taste 1 ist die Zielschaltfläche, die das Modalpopup startet.) Wie kann ich die Endlosschleife vermeiden? Vielen Dank. –

Verwandte Themen