Seiten

Herzlich willkommen im technischen Blog der MindBusiness GmbH
In diesem Blog veröffentlichen wir praxisnahes Know-how, neue Erkenntnisse und Erfahrungen zu Microsoft SharePoint- und Office-Themen direkt aus unserer Berater-, Trainer- und Entwickler-Praxis. Hier finden Sie interessante Lösungen und neue Ideen zu den verschiedensten Anforderungen und Problemen. Unseren News-Blog finden Sie unter newsblog.mindbusiness.de/newsblog. Wir wünschen Ihnen viel Spaß beim Lesen und Stöbern und freuen uns auf den Austausch mit Ihnen.

HTML-Request-Parameter in Silverlight-Anwendungen übernehmen

Dieser Beitrag beschreibt die Lösung der folgenden Aufgabenstellung, die sich immer wieder ergibt.

In einer Silverlight-Anwendung soll ein Parameter aus dem HTML-Request übernommen werden.

Ich gehe von folgendem Request aus:

%URI%?Mitgliedsnummer=4&x=y&Item=test

Der Wert der Mitgliedsnummer soll in eine Textbox übernommen werden. Dies geschieht sinnvoller Weise, indem im Konstruktor für das Event Loaded ein Event-Handler registriert wird.

Loaded += new RoutedEventHandler(MainPage_Loaded);

 

Die Implementierung wird im folgenden Listing gezeigt. Wichtig ist, dass man über Silverlight auf das Objektmodell des Browsers zugreifen kann.

void MainPage_Loaded(object sender, RoutedEventArgs e)
        {

            bool pFlag = false;

            String nummer = “”;

            foreach (String myKey in  HtmlPage.Document.QueryString.Keys) {

                   if (myKey == “Mitgliedsnummer”) {

                       pFlag = HtmlPage.Document.QueryString.TryGetValue(myKey,out nummer);

                      break;

                   }

            }

            if (pFlag) {

                this.txtMitgliedsnummer.Text = nummer;

            }

        }

An der Lösung sind drei Objekte beteiligt:

  • Die Verwendung des HTMLPage Objektes aus dem Namespace System.Windows.Browser.
  • Hier finden ich das Document Objekt und dieses hat wiederum ein QueryString Objekt. Damit kann ich den HTML-Request darstellen.

Auf der Basis dieses Objektmodells ist die Umsetzung relativ einfach.

  1. Mit Hilfe von foreach werden Keys des QueryString-Objektes durchlaufen (ich weis nicht, ob noch weitere Parameter übergeben werden)
  2. Wenn ich den Key finden, dann lesen ich über TryGetValue(string key, out string) den zum Key gehörenden Wert aus. Die Funktion liefert war oder falsch.
  3. Danach schreiben ich, wenn es denn einen Übergabeparameter Mitgliedsnummer gegeben hat, diesen Wert in die TextBox txtMitgliednummer.

Die Funktion kann auch noch kürzer geschrieben werden:

String nummer = “”;
            foreach (String myKey in HtmlPage.Document.QueryString.Keys)
            {
                if (myKey == “Mitgliedsnummer”)
                {
                    if (HtmlPage.Document.QueryString.TryGetValue(myKey, out nummer))
                        this.txtMitgliedsnummer.Text = nummer;
                        break;
                }
            }

Hinterlasse eine Antwort

 

 

 

Du kannst diese HTML-Tags benutzen

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">