Announcement

Collapse
No announcement yet.

Zugriff auf ID mittels Request.Form

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zugriff auf ID mittels Request.Form

    Hallo,

    kann mir jemand einen Tipp geben wie ich mittels Request.Form auf die ID "test" zugreifen kann?

    <asp:TextBox ID="test" runat="server"></asp:TextBox>

    Das Formular versende ich per LinkButton.

    <asp:LinkButton ID="Send" runat="server" PostBackUrl="page2.aspx" Text="Send" />

    Leider rendert das Framework die ID "test" in eine andere ID um so das ich darauf nicht mehr zugreifen kann.

    Sprich request.form["test"] funktioniert leider nicht. Im normalen ASP hatte es damals so funktioniert.

  • #2
    Hallo,

    es geht darum nach dem Postback auf den Text in der TextBox mit der ID="test" zuzugreifen.

    Falls dem so ist geht das mit
    [highlight=c#]
    string text = (this.PreviousPage.FindControl("test") as TextBox).Text;
    [/highlight]

    Weitere Möglichkeiten wären
    • Speichern der Werte in der Session-Objektmenge
    • Anhängen einer URL-Parameterliste
    • öffentliche Eigenschaften der Seite
    • ...


    mfG Gü
    Zuletzt editiert von gfoidl; 01.07.2010, 14:39.
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Die Lösung ist hier zu finden

      Beste Grüße,

      Compu

      Comment


      • #4
        hallo,
        was passiert wenn man PostBackUrl angibt? Ist das der action-tag im Form auf eine andere Seite oder wird nochmal auf die aspx-Seite selbst gleitet und dann erst an die neue Seite? Dachte ASP.net macht immer auf sich selbst?

        Weil eigentlich wäre ja dann der Begriff PostBackUrl unglücklich gewählt denn wenn es direkt auf eine andere Seite geht dann ist es kein PostBack mehr oder?

        Comment


        • #5
          Hallo zusammen,

          das Thema ist zwar schon etwas her, ich möchte es aber gerne nochmal aufgreifen, da ich ein ähnliches Problem habe und der Thread, das Beste ist was ich dazu gefunden habe. Ich habe auch die Lösung im .NETForum hier und auch die empfohlenen HowTos gelesen. Meine Registrierung dort scheiterte aber - ich bekomme keine Mail mit den Login-Daten.

          Bei meiner Anwendung ist das Problem ein klein wenig anders. Ich verwende eine Index-Seite in die ich verschiedene User-Controls einbinde:

          1. Seite inkludiert die Seite Anmeldung.ascx (Anmeldeformular)
          2. Seite inkludiert die Seite AnmeldungOK.ascx (Anmeldebestätigung)

          Nachdem die Anmeldung fehlerfrei ausgeführt wurde leite ich mittels Server.Transfer auf die Bestätigungsseite weiter:

          Code:
          Server.Transfer("./Index.aspx?Seite=AnmeldungOK")
          Es wird also wieder die Index.aspx aufgerufen, aber über den Parameter "AnmeldungOK" ein anderes User-Control eingebunden.

          Dort würde ich gerne auf die Werte in den Web-Controls auf der Vorgängerseite zugreifen. Im Moment mache ich das, indem ich die Inhalte in entsprechende Session-Variablen schreibe

          Code:
          Session("Vorname") = txtVorname.Text
          Session("Name") = txtName.Text
          ..
          und diese auf der nächsten Seite wieder auslese

          Code:
          LabelName.Text = Session("Vorname") + " " + Session("Name")
          ..
          Der Nachteil ist hier, dass ich alles extra an die Session hängen muss (etwas umständlich) und da ich nur auf Werte der Vorgängerseite zugreifen möchte, würde ich das lieber direkt machen.

          Ich habe auf der Anmeldungsseite z. B. folgende Controls:

          Code:
          <asp:textbox id="txtVorname" Runat="server" Width="250">
          <asp:textbox id="txtName" Runat="server" Width="250">
          Das Ganze steckt innerhalb eines Forms, welches in der Index-Seite definiert ist (sozusagen "alles umklammernd", da es ja nur ein server-seitiges Form geben kann):

          Code:
          <form id="Form1" method="post" runat="server">
          Auf der Seite mit dem User-Control AnmeldungOK versuche ich nun wie folgt, auf die Werte der Text-Boxen des User-Controsl Anmeldung zuzugreifen:

          Code:
          LabelName.Text = Page.PreviousPage.Form.FindControl("txtVorname").ToString
          Hier bekomme ich dann aber eine System.NullReferenceException

          Ich vermute mal, ich muss mich ähnlich durch die Controls "hangeln", wie das in der Lösung im .NETForum aufgezeigt wird:

          Code:
          TextBox oTextBox = (TextBox)Page.PreviousPage.Form.FindControl("Middle_Content").FindControl("Content").FindControl("TextBox1");
          Nur verstehe ich die Struktur der Controls hier nicht ganz. Worauf bezieht sich dort das Control "Middle_Content" und "Content"? Muss ich in meinem Fall in der Reihenfolge Form > Control (also "Form1" > "txtVorname") hangeln?
          Oder kann ich evtl. durch meine Vorgehensweise auf diese Weise gar nicht mehr auf die Controls der "PreviousPage" zugreifen?

          Vielen Dank für Hinweise.

          Comment

          Working...
          X