Announcement

Collapse
No announcement yet.

Textfelder von Masterpage in einen String schreiben

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

  • Textfelder von Masterpage in einen String schreiben

    Hallo alle zusammen,

    Ich sitze gerade am Anfang einer Aufgabe und scheitere bereits auf der Startlinie.

    ---
    Visual Studio 2008
    ASP.NET (C#)
    ---

    Mein Problem ist folgendes:
    Ich habe eine Projekt mit einer "ASP.NET Web Application" und einer "Class Libary".

    In meiner WebApplication befindet sich unter anderem eine Masterpage, ansonsten mehrere einzelne Pages(.aspx).
    In der ClassLibary befindet sich die sendData.cs, in welcher Strings stehen, die von der Masterpage gefüllt werden sollen.

    Leider habe ich keine Ahnung, wie ich die inhalte der ausgefüllten Textboxen der Masterpage und anderen Pages in die Strings der sendData.cs bekomme.
    Es soll beim ausführen eines Buttons auf der Masterpage geschehen.

    Ich habe den einzelnen Pages IDs zugeteilt, an welcher der Button per Switch Case weiß, welche Stings er füllen muss.
    Allerdings weiß ich nicht, wie ich der Buttonmethode klar machen soll, woher die ID kommen, oder wo die Strings der sendData.cs herkommen.

    Kann mir jemand da ein paar Tipps geben.
    Ich bin Azubi, daher bitte Nachsicht bei meiner Fachlichen Beschränktheit.

    Danke im Voraus

    MfG

    F60.2
    Zuletzt editiert von F60.2; 09.03.2011, 10:45.

  • #2
    Im Designer doppelklick auf den Button -> dann kannst Du ganz normal wie bei Windows Forms auf die Elemente der UI zugreifen und die Methoden in sendData.cs aufrufen.
    Oder hast Du das Problem dass der Button in der Masterpage ist und die Controls aus denen Du die Daten liest in den "child" pages?

    Comment


    • #3
      Zweiteres.
      Die Buttonmethode in der Masterpage.cs gibt es bereits, soweit wusste ich gerade noch ^°
      Ich weiß nur nicht, wie ich die Strings in der sendData.cs mit den Textboxeinträgen der Master- und "child"-Pages fülle.

      Comment


      • #4
        Was sind denn das für String in dem .cs file? Bitte poste mal etwas Code aus der Datei damit man sich davon ein Bild machen kann. Ich kann mir irgendwie nicht vorstellen was Du tun möchtest

        Comment


        • #5
          ok, da ich den code nicht einstellen darf wegen Firma und Datenschutz und solche sachen, versuche ich es mal so einfach wie möglich zu beschreiben.

          Beispiel:

          Masterpage:
          --- Textbox, ID="Name"
          --- Textbox, ID="Alter"

          "child"-Page_1:
          --- PageID=101
          --- Textbox, ID="Wohnort"

          "child"-Page_2:
          --- PageID=102
          --- Textbox, ID="Arbeitsstelle"

          sendData.cs:
          --- string strName
          --- string strAlter
          --- methode bei PageID=101
          ------ string strWohnort
          --- methode bei PageID=102
          ------ string strArbeitsstelle


          Buttonmethode auf der Masterpage:
          --- strName = Name.Text
          --- strAlter = Alter.Text
          --- switch (PageID)
          ------ case"101"
          --------- strWohnort = Wohnort.Text
          ------ case"102"
          --------- strArbeitsstelle = Arbeitsstelle.Text
          ...

          ich hoffe damit ist verständlicher was ich erreichen möchte

          Comment


          • #6
            Ich würde SendData schon mal nicht abhängig von der jeweiligen Seite machen. Ich gehe mal dass unterschiedliche Operationen für einen Benutzer vorgenommen werden sollen. Benutzermanagement lässt sich in .NET übrigens sehr schön über den MembershipProvider (und zugehörige andere Klassen) lösen.
            Durch den MembershipProvider hast Du z.B. von jeder Seite Zugriff auf den aktuell eingeloggten User. Für diesen könntest Du dann innerhalb der Seite z.B. den Wohnort oder die Arbeitsstelle ändern.
            Direkt auf die TextBoxen der Masterpage aus Childpages zuzugreifen würde ich möglichst sein lassen, wenn es überhaupt möglich ist.

            Comment


            • #7
              ... ok, ich sollte dazu sagen, das dies ein extrem vereinfachtes Beispiel sein sollte.
              Das was ich vorhabe gibt es bereits, allerdings in VB, allerdings habe ich davon sowas von überhaupt keine Ahnung, deswegen versuche ich gar nicht erst das aufzuarbeiten.
              Es soll aber in der Form, wie in dem Beispiel geschehen.
              Die Attribute und Feldnamen sind ebenfalls nur Beispiele, es geht mir nur um die Übertragung der Textfeldinhalte in die Strings der sendData.cs und wie der MasterpageButton die PageID und die Textfelder der "child"-pages erkennt, sowie die Strings der sendData.cs

              Comment


              • #8
                ok, nach einer Stunde ohne Antwort versuche ich mich nochmal genauer ausdrücken.
                (ja ich bin ungeduldig ^^)

                1. Wie kann ich von der Masterpage, in einer Methode, auf den Textboxinhalt und andere Inhalte einer ChildPage Zugreifen?

                2. Wie kann ich von der Masterpage Diese Textboxinhalte in einen String Schreiben, der sich in einer anderen Datei befindet (sendData.cs)

                Vielmehr ist es eigendlich nicht was ich brauche... bisher
                Zuletzt editiert von F60.2; 09.03.2011, 16:03.

                Comment


                • #9
                  Ich sitze auch heute noch am selben Problem,
                  würde mich riesig freuen, wenn mir jemand helfen könnte.

                  Comment


                  • #10
                    Eine MasterPage sollte von den ChildPages überhaupt gar nichts wissen. Wenn überhaupt dann greift die ChildPage auf die Controls der MasterPage zu.

                    http://lmgtfy.com/?q=asp.net+access+...rom+child+page :P

                    Dann kommt man z.B. hier

                    http://odetocode.com/articles/450.aspx

                    oder hier

                    http://geekswithblogs.net/dnoderer/a.../15/88083.aspx

                    Und bitte mache kein Switch Case in die Master Page rein. Eine MasterPage ist unabhängig von allen ContentPages. Deswegen soll in der MasterPage auch nichts über ContentPages stehen. Aber so wirds ja auch in den Beispielen gemacht

                    Comment


                    • #11
                      Danke für den Tipp,
                      aber um ehrlich zu sein, das verstehe ich noch weniger.

                      Eine MasterPage sollte von den ChildPages überhaupt gar nichts wissen.
                      Gibt es keine Möglichkeit das "sollte" mal zu umgehen?
                      Es muss doch möglich sein, dass eine Methode in der cs-Datei der Masterpage eine Textbox aus einer ContentPages ausließt und in einen String speichert, der sich in der ClassLibary in einer anderen cs-Datei befindet.

                      Mit deinem Tipp werde ich mich dann befassen, wenn ich meinem Ausbilder zumindest schonmal i-was Vorzeigbares vorzeigen kann.

                      Comment


                      • #12
                        Du solltest trotzdem sowas nicht in die MasterPage machen. Schau wenn Du je nach Seite alles in der MasterPage machst, dann hast Du irgendwann ein RIESIGES .cs File hinter Deiner MasterPage. Packst Du jetzt aber den entsprechende Code in das .cs File jeder einzelnen Seite hast Du mehrere kleine die inhaltlich komplett voneinander getrennt sind. Dazu kommt dann noch dass Du wenn Du an einer Seite was änderst den Code der anderen Seite nicht anfassen musst.

                        Im Prinzip musst Du auf egal welcher Seite nur das hier aufrufen:

                        Dim olbl As Label = Me.Form.Parent.FindControl("lblRegFooter")

                        Damit findest Du z.B. ein Label mit der ID "lblRegFooter" egal woher das label kommt. Das kannst Du analog natürlich auch mit jedem anderen Control machen. Trotzdem würde ich mit dem Ausbilder noch mal ein Wörtchen reden. Ich denke nicht dass es richtig ist die komplette Logik in die MasterPage zu packen. Mir gruselt bei dem Gedanken

                        Comment


                        • #13
                          Also das aufteilen in die ContentPages leuchtet mir jetzt auch ein, aber wie erreiche ich mit dem Button auf der Masterpage die Methode der ContentPages und wie bekomme ich die Inhalte der der Textboxen in die .cs in der ClassLibary?

                          Dim olbl As Label = Me.Form.Parent.FindControl("lblRegFooter")
                          Das ist VB, davon hab ich keine Ahnung, mit...
                          Label olbl = this.Form.Parent.FindControl("lblRegFooter");
                          ... hätte ich was anfangen können.

                          Findet man diesen Label jetzt auch in der .cs in der LibaryClass?

                          Comment


                          • #14
                            Was soll denn das Label in der Library Class? Eine Library class sollte auch nichts von der Oberfläche wissen. Ausserdem macht eine .cs Datei nichts, sondern die Klassen die drin sind.

                            Übersetzt hast Du es übrigens richtig

                            Beispiel:

                            [highlight=c#]
                            //Das wäre die Klasse in SendData.cs
                            public class MeineInterneLogik
                            {
                            public void AendereAdresse(string name, string adress)
                            {
                            //mache hier irgendwas
                            }
                            }

                            //Das wäre im CodeBehind zur ContentPage
                            private void OnButtonClick(object sender, EventArgs e)
                            {
                            TextBox nameTextBox = (TextBox) this.Form.Parent.FindControl("txtMeineNamensBox");
                            string name = nameLabel.Text;

                            string neueAdresse = txtMeineAdressenBox.Text;

                            var interneLogik = new MeineInterneLogik();
                            interneLogik.AendereAdresse(name, neueAdresse);
                            }
                            [/highlight]

                            Was solls denn überhaupt werden? Vielleicht kann man dann sinnvollere Ratschläge geben? Also ich meine jetzt nicht das technische Problem, sondern das fachliche.

                            Comment

                            Working...
                            X