2010-12-06 2 views
0

Morgen alle.Wie stelle ich sicher, dass Javascript nach einem Update-Panel gefeuert wird, na ja, aktualisiert?

Wie geht es uns? Ausgezeichnet, ich hoffe.

Ich habe folgende kleines Stückchen Code, den ich ein paar Radio-Buttons auf meiner Seite zu überprüfen, bin mit/deaktivieren:

<script type="text/javascript"> 

function SetOption1RadioButton() { 
    document.getElementById('<%=radOption1.ClientID%>').checked = true; 
    document.getElementById('<%=radOption2.ClientID%>').checked = false; 

</script> 

ich diese dann hinter dem Code auf wenige Kontrollen zuweisen und füge zum Laden der Seite:

protected void Page_Load(object sender, EventArgs e) 
     {    
      SetJavascriptAttributes();   
     } 

public void SetJavascriptAttributes() 
     { 
       ddl1.Attributes.Add("onFocus", "SetOption1RadioButton()"); 
       ddl1.Attributes.Add("onClick", "SetOption1RadioButton()"); 
     } 

Jetzt funktioniert das großartig auf die erste Ladung - schöne Sachen. Wenn ich auf ddl1 klicke, wird der Radiobutton entsprechend eingestellt. Wenn das Update-Panel jedoch zurückgibt, funktioniert das JavaScript nicht mehr.

Ich denke, das liegt daran, dass die HTML zurückgegeben wird und das Javascript nicht mehr da ist.

Wie kann ich sicherstellen, dass trotz eines Update-Panels, das auftritt, das Javascript noch etwas länger läuft und ordnungsgemäß funktioniert?

Jede Hilfe oder Vorschläge dankbar erhalten.

Antwort

0

Da Sie updatepanel verwenden, nehme ich an, dass Sie bereits eine ScriptManager auf Ihrer Seite haben. Ich schlage vor, Sie ScriptManager verwenden, um all Client-Skripte zu registrieren, wird dies versichert sie auf teilweise Postbacks aufgerufen:

ScriptManager.RegisterStartupScript(); 
ScriptManager.RegisterExpandoAttribute(); 
+0

Hallo Dejan - das Script innerhalb einer Masterseite platziert - würde dies einen Unterschied machen? –

+0

Nein, es sollte keinen Unterschied machen. Wenn Sie die statische Instanz der ScriptManager-Klasse verwenden, sollte sie die ScriptManager-Instanz auf Ihrer Masterseite finden, solange das Steuerelement, das Sie in den Parameter 'control' in der obigen Methodenvorlage einfügen, Teil der Steuerelementstruktur der aktuellen Seite ist ist bereits auf der Seite hinzugefügt, machen Sie sich keine Gedanken darüber, wenn Sie dem Kontrollbaum keine Steuerelemente dinamycaly hinzufügen) Also kurz gesagt, nein. – dejanb

Verwandte Themen