Wie kann ich die Text-Eigenschaft eines Textfelds oder Labels (speziell eines asp.net-Steuerlements) vom Code im Silverlight-Control aus aktualisieren?
Antworten
Zu viele Anzeigen?Vorgeschlagene Lösung:
Ich nehme an, dass Sie versuchen könnten, es in zwei Schritten zu tun:
-
Schreiben Sie eine JavaScript-Funktion, die eine Steuerung basierend auf einem angegebenen Parameter aktualisiert, nennen wir sie
updateControl
:function updateControl(neuerWert) { //Aktualisiere deine Steuerung hier mit dem neuerWert-Parameter mit JavaScript ... }
-
In Ihrer Silverlight-Anwendung (an der Stelle, an der Sie die Änderung des Steuerungswerts aufrufen möchten) sollten Sie schreiben:
HtmlPage.Window.Invoke("updateControl", "das ist ein neuer Wert")
Ein weiterer Lösungsvorschlag nur für die Aktualisierung der Seite:
Wenn Sie nur die Seite aktualisieren müssen, um den Wert an einer anderen Stelle zu erhalten, können Sie in Ihrem Silverlight-Code schreiben:
HtmlPage.Document.Submit()
In der Rückmeldung könnten Sie diese Daten abrufen und sie in der Steuerung anzeigen.
Referenzen und nützliche Ressourcen:
- ScriptObject.Invoke Methode: http://msdn.microsoft.com/de-de/library/system.windows.browser.scriptobject.invoke%28v=vs.95%29.aspx
- Schritt-für-Schritt-Anleitung: Aufrufen von JavaScript aus verwaltetem Code: http://msdn.microsoft.com/de-de/library/cc221359%28v=vs.95%29.aspx
- Silverlight und JavaScript Interop-Grundlagen: http://pietschsoft.com/post/2008/06/Silverlight-and-JavaScript-Interop-Basics.aspx
- Wie man den Wert eines Formularelements mit Javascript setzt: http://www.javascript-coder.com/javascript-form/javascript-form-value.phtml
Sie können dies tun, indem Sie die Javascript-Funktion von Silverligt aus aufrufen. Es sieht kurz so aus:
HtmlPage.Window.Invoke("globalJSMethod", stringParam);
Beachten Sie, dass die Javascript-Methode vom Fenster aus zugänglich sein muss - window.globalJSMethod(...) Überprüfen Sie diese Schritt-für-Schritt-Anleitung, um zu sehen, wie dies im Detail funktioniert.