2017-03-18 4 views
0

Ich benutze ein Benutzersteuerelement, um den Beschriftungstext auf der linken Seite einer Seite anzuzeigen, und ein anderes Benutzersteuerelement, um die Inhaltsseite anzuzeigen. Wenn sich der Text eines Felds auf der Inhaltsseite ändert, muss ich denselben Status auf einer Beschriftung im Menü usercontrol auf der linken Seite aktualisieren.Text eines Steuerelements in einem anderen Benutzersteuerelement aktualisieren, wenn sich der Text eines Steuerelements in einem anderen Benutzersteuerelement ändert

Ich habe verwendet:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(),"ChangeLabelText", script, false) 

den Text auf der linken Steuer zu ändern, das Javascript im Zusammenhang mit diesem ausgeführt wird, aber das Etikett zeigt noch den alten Text, auch wenn der Text auf der Content-Seite aktualisiert wird, nachdem Seitenaktualisierung Es wird jedoch der neue aktualisierte Text angezeigt, wenn die gesamte Seite aktualisiert wird.

Bitte schlagen Sie einen Ansatz zur Lösung dieses Problems vor.

+1

Mögliche Duplikat [Nachricht Werte von einer Form in eine andere Form] (http://stackoverflow.com/questions/1559770/send-values-from-one -form-to-another-form) –

+0

Mine ist eine Web-basierte Anwendung – MukkuP

+0

Vielleicht möchten Sie ein [asp.net] -Tag oder etwas hinzufügen –

Antwort

0

Wenn Sie zwei UserControls auf einer Seite haben und ein Label im zweiten Control von dem Code hinter dem ersten Controlup aktualisieren möchten, müssen Sie FindControl verwenden.

//find the other control in the parent 
Control control = Parent.FindControl("WebUserControl2") as Control; 

//find the label in that control 
Label label = control.FindControl("Label1") as Label; 

//update the label 
label.Text = "Updated from another control"; 

aktualisieren

Wenn Sie mit aktualisieren möchten Javascript Sie müssen nur sicherstellen, dass Sie ID das Recht zu senden.

ScriptManager.RegisterStartupScript(Page, GetType(), "changeLabel", "changeLabel('WebUserControl2_Label1', 'Updated with JS')", true); 

Und die javscript Funktion

<script type="text/javascript"> 
    function changeLabel(id, text) { 
     document.getElementById(id).innerHTML = text; 
    } 
</script> 
+0

hinzufügen Das wird funktionieren, wenn die Seite aktualisiert wird, aber in meinem Fall wird die linke Seite nicht aktualisiert und ich denke, dass dies durch Javascript getan werden muss – MukkuP

+0

Aktualisiert meine Antwort. – VDWWD

+0

Ich hatte bereits diesen Ansatz, aber der Wert im linken Steuerelement bleibt alt, d. H. Das Javascript wird ausgelöst, bevor ich den neuen Textwert vom Server bekomme, muss ich das Javascript auslösen, nachdem ich den neuen Wert, irgendwelche Vorschläge? – MukkuP

Verwandte Themen