ASP.NET Zone

Die ASP.NET Community. Alle Antworten rund um Microsoft® Webtechnologien
Willkommen bei ASP.NET Zone. Anmelden | Registrieren | Hilfe | Impressum | ASP.NET Zone Suchplugin

in
Home Blogs Foren FAQ Communities Fotos Downloads
Werbeanzeige

Zugriff auf TextBoxes

Letzter Beitrag 05-08-2012, 10:01 von carromo. 4 Antworten.
Beiträge sortieren: Zurück Weiter
  •  05-07-2012, 15:14 224241

    Zugriff auf TextBoxes

    Hallo an alle,

    ich habe ein Problem, bei dem ich scheinbar gerade etwas auf dem Schlauch stehe Sad.

    Ich habe ein Multiview, in dem unter anderen ein DropDown Feld mit Textvorlagen hinterlegt ist. In diesen Textvorlagen gibt es Platzhalter (gekennzeichnet durch [platzhalter]), die über Texteingaben gefüllt werden müssen. Das habe ich ich über die DropDown Flder gelöst (AutoPostback). Das klappt auch, zumidest erscheinen die TextBoxes:



    //tmpStart und tmpEnde werden korrekt ermittelt und die Boxen auch korrekt benannt --->lt. Quelltext im IE)

    TextBox tb = new TextBox();
    tb.ID = "TextBox_" + tmpText.Substring(tmpStart, (tmpEnde - tmpStart));

    View tnView = (View)this.viewAnschreiben.FindControl("aktuelleView");
    tnView.Controls.Add(tb);

    Mein Problem ist nun, dass ich die TextBoxen "nicht finde", d.h. nach einen Klick auf einen Button müsste ich diese auslesen. Ich habe schon alles mögliche versucht. Mein letzter VErsuch:



    View tnView = (View)this.viewAnschreiben.FindControl("aktuelleView");

    foreach (Control c in tnView.Controls)
    {
    Response.Write(c.ID);
    Response.Write("<br>");
    }

    JA, Response.Write soll nicht benutzt werden, aber zum "ausprobieren" finde ich das ganz praktisch.

    Sehe ich das falsch, dass die TextBoxes hier auftauchen müssten oder habe ich hier eine Schleife zu viel im Hirn?? Alle anderen Controls (u.a. die DropDown Liste taucht auf.)

    Vielen Dank für Eure Hilfe

     

     


    Danke und Gruß Carromo
  •  05-07-2012, 16:57 224244 Antwort zu 224241

    AW: Zugriff auf TextBoxes

    Hi,

    wann erzeugst Du diese TextBoxen? Nur einmalig nach Auswahl eines Werts in der ListBox? Falls ja, das geht so nicht. Dynamisch erstellte Controls müssen immer erzeugt werden, auch bei PostBacks. Zudem sollten diese Controls in Page_Init, spät. aber in Page_Load erzeugt werden, ansonsten können diese für eigene PostBack Verarbeitung meist nicht mehr verwendet werden.


    --
    Gruß, Stefan Falz
    Microsoft MVP - Visual Developer ASP/ASP.NET
    ASP.NET Consulting, Development, Coaching

    ASP.NET Zone - Leitfaden für gute Postings

    Xtopia 2008 - Gewinnspiel / Expression Studio und Xtopia Eintrittskarten zu gewinnen
  •  05-08-2012, 7:43 224249 Antwort zu 224244

    AW: Zugriff auf TextBoxes

    Guten morgen Stefan,

     

    vielen Dank für die Antwort - auch wenn es nicht das ist was ich hören wollte Tongue Tied. Wenn ich Dich richtig verstanden habe, müssten meine Controls schon im Page_load erstellt werden, allerdings weiß ich nicht wie ich das realisieren soll. Der Ablauf der gesamten Eingabe ist folgednermaßen:

    1. Auswahl einer Zielgruppe --> es wird das entsprechende View des Multiviews aufegrufen

    2. Im View wir eine Textauswahl angeboten -->im ausgewählten Text sind x Platzhalter der Form [Uhrzeit], [strasse] etc. enthalten. Anhand dieser Platzhalter werden die TExtBoxes zur eingabe der Werte erstellt. (ID wird anhand des Platzhalters erstellt)

    3. Genereiren des Briefes -->Im Text sollen die Platzhalter durch die Eingaben ersetzt werden und der Serienbrief erstellt werden

    Da die Anzahl und die IDs der TextBoxes ja erst bei "Schritt 2" bekannt sind können diese ja nicht beim Page_Load erstellt werden oder funktioniert es, wenn ich im Page Load den Inhalt des Textes auswerte und die Boxes erstelle??  Oder hast Du vielleicht eine einfachere Idee?

     


    Danke und Gruß Carromo
  •  05-08-2012, 9:01 224252 Antwort zu 224249

    AW: Zugriff auf TextBoxes

    carromo:

    vielen Dank für die Antwort - auch wenn es nicht das ist was ich hören wollte Tongue Tied. Wenn ich Dich richtig verstanden habe, müssten meine Controls schon im Page_load erstellt werden, allerdings weiß ich nicht wie ich das realisieren soll. Der Ablauf der gesamten Eingabe ist folgednermaßen:

    ...

    Da die Anzahl und die IDs der TextBoxes ja erst bei "Schritt 2" bekannt sind können diese ja nicht beim Page_Load erstellt werden oder funktioniert es, wenn ich im Page Load den Inhalt des Textes auswerte und die Boxes erstelle?


    Du kannst Controls erstellen wann Du willst, sie müssen nur allerspätestens in page_load (besser page_init) wiedererstellt werden. Dynamisch erzeugte Controls müssen in ASP.NET nach jedem Postback neu erstellt werden. Das sollte eben nicht später als Page_Load stattfinden damit der ViewState noch funktioniert, um Events auszulösen(immer de gleichen ID's verwenden) oder Werte auszulesen (z.B. TextBox.Text). Du brauchst normalerweise bloss die derzeitige Anzahl irgendwo zu speichern (Session,VieewState,Hiddenfield,...). Anhand dieser kannst Du dann die Control erzeugen.



    TRULY Understanding Dynamic Controls


    Gruß

    Stack Overflow profile for Tim at Stack Overflow, Q&A for professional and enthusiast programmers
  •  05-08-2012, 10:01 224254 Antwort zu 224252

    AW: Zugriff auf TextBoxes

    Super,

     

    vielen Dank Euch beiden, hat alles wunderbar geklappt jetzt Drinks


    Danke und Gruß Carromo
Als RSS Feed in XML ansehen
Powered by Community Server (Commercial Edition)