Hi,

den anderen Weg hatte ich bereits gemacht, also TextBox und Buttons
immer in die Form gesetzt. ABER, so soll unser System nicht ausgelegt
sein. Hintergrund ist, das ganze soll als HTML-Tabelle benutzt werden,
in welcher dann die TextBoxen usw. stehen. Von Programmtext aus, nicht
vom HTML-Code wollen wir dann die Spalten etc. der Tabelle aendern,
ist einfacher zu handhaben. Daher muss es so umstaendlich sein, obwohl
es eigentlich nicht wirklich umstaendlich ist.

Die Sache mit der Pre-Render Methode ist wirklich gut. Waere aber besser
wenn ich das noch irgendwie anders handhaben koennte, also wenn es einen
elegenteren Weg gaebe. Ansonsten muss ich tatsaechlich darauf
zurueckgreifen.

Ach ja, ich bin mehrmals schon mit dem Debugger durch den Code gegangen,
laut Debugger-Informationen wird der Inhalt der TextBox korrekt neu
gesetzt. Ist aber dummerweise nicht in der Form zu sehen. (War mein erster
Gedanke, also das Problem auftrat.)

Ich danke, Euch auf jeden Fall, fuer Eure Hilfe!


Mit freundlichen Gruessen!
Kristian Tingler



-----Urspr�ngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Auftrag von Pessner, Andreas
Gesendet: Montag, 1. M�rz 2004 11:31
An: [EMAIL PROTECTED]
Betreff: AW: [Asp.net] DRINGEND: TextBox.Text Proptery nach
Page.IsPostBack == true aendern; MIT SOURCE CODE


Ist das net a bissle Sehr umst�ndig??

Ansonsten wenn du das wirlich so umst�ndlich machen willst - dann debugge
das ganze doch einfach - zumal du ja Visual Studio benutzt (sieht zumindest
so aus!)

Wenn DU das net so umst�ndlich brauchst - dann w�rde ich das anders machen!

1. Textbox immer rein
2. Button auch rein!

3. Der Button bekommt nen EventHandler!
Button Btn = new Button();
Btn.Click += new EventHandler(Btn_click_event);

4. Im Eventhandler

Private void Btn_click_event(object sender, EventArgs e)
{
        txt.Text = "hier der neue Text!";
}

So das m��te es so ungef�hr sein!

-----Urspr�ngliche Nachricht-----
Von: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im
Auftrag von Kristian Tingler
Gesendet: Montag, 1. M�rz 2004 10:47
An: [EMAIL PROTECTED]
Betreff: [Asp.net] DRINGEND: TextBox.Text Proptery nach Page.IsPostBack ==
true aendern; MIT SOURCE CODE


Hallo,

ich hab da ein mit Sicherheit einfaches Problem,
was mich aber schon das ganze Wochenende an Nerven
gekostet hat.

Ich habe eine Form, in der Form habe ich einen
PlaceHolder. Dann habe ich ja die PageLoad-Methode,
in ihr deklarieren ich eine TextBox und initialisiere
diese, das selbe mit einem Button. Beide Controls
fuege ich der Control-Collection des PlaceHolders
hinzu. Das ganze geschieht waehrend eines
Page.IsPostBack == false.
Wenn jetzt Page.IsPostBack == true ist, frage ich die
geposteten Werte der TextBox ab, und aendere den Inhalt
des TextBox.Text - Properties. Dann fuege ich die
Controls wieder der PlaceHolder-Control-Collection
hinzu. Aber die TextBox in der Form, hat noch immer den
selben Inhalt, welche ich eingegeben habe. Obwohl
ich den Inhalt nach dem PostBack geaendert habe.

Konkret:

Gebe ich in der TextBox einen Text ein, klicke auf
den Button, ist immernoch der selbe Inhalt in der
TextBox. Und genau das soll nicht sein!

Der Source Code ist nur ein Beispiel Projekt, um das
Problem einfacher zu beschreiben.


Danke, schoneinmal im voraus fuer Eure Hilfe!

Mit freundlichen Gruessen!
Kristian Tingler



Source-Code:

using System;
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Diagnostics;

namespace WebTest
{
        /// <summary>
        /// Zusammenfassung f�r WebForm1.
        /// </summary>
        public class WebForm1 : System.Web.UI.Page
        {
                protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1;

                private void Page_Load(object sender, System.EventArgs e)
                {
                        Button btn = null;

                        // TextBox deklarieren und initialisieren
                        System.Web.UI.WebControls.TextBox               txt;
                        txt = new TextBox();

                        PlaceHolder1.Controls.Clear();

                        if (Page.IsPostBack)
                        {
                                // jetzt die gePOSTeten Werte holen

                                NameValueCollection coll = Request.Form;

                                String[] arrKey = coll.AllKeys;     // alle Keys in 
ein String-Array
                                SortedList  slV = new SortedList();
                                for (int i = 0; i < arrKey.Length; i++)
                                {
                                        String[] arrValue = coll.GetValues(arrKey[i]);
                                        if (arrValue.Length > 0)
                                        {
                                                slV.Add(arrKey[i], arrValue[0]);
                                                Debug.WriteLine("Key: " + 
arrKey[i].ToString() + " - Value: " +
arrValue[0].ToString());
                                        }
                                }

                                if (slV.ContainsKey("txtID"))   // txt-Control wurde 
geaendert
                                {
                                        txt.ID = "txtID";

                                        txt.Text = "Ich stehe hier, nach dem 
Button-Klick, in der TextBox";  //
coll["txtID"];
                                        PlaceHolder1.Controls.Add(txt);

                                        btn = new Button();
                                        PlaceHolder1.Controls.Add(btn);

                                        PlaceHolder1.Controls.Add(new 
LiteralControl("Page.IsPostBack ==
true"));
                                }
                        }
                        else
                        {
                                txt.ID = "txtID";
                                txt.Text = "";

                                PlaceHolder1.Controls.Add(txt);

                                btn = new Button();
                                PlaceHolder1.Controls.Add(btn);

                                PlaceHolder1.Controls.Add(new 
LiteralControl("Page.IsPostBack ==
false"));
                        }
                }

                #region Vom Web Form-Designer generierter Code
                override protected void OnInit(EventArgs e)
                {
                        //
                        // CODEGEN: Dieser Aufruf ist f�r den ASP.NET Web Form-Designer
erforderlich.
                        //
                        InitializeComponent();
                        base.OnInit(e);
                }

                /// <summary>
                /// Erforderliche Methode f�r die Designerunterst�tzung.
                /// Der Inhalt der Methode darf nicht mit dem Code-Editor ge�ndert 
werden.
                /// </summary>
                private void InitializeComponent()
                {
                        this.Load += new System.EventHandler(this.Page_Load);

                }
                #endregion
        }
}


_______________________________________________
Asp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net
_______________________________________________
Asp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net



_______________________________________________
Asp.net Mailingliste, Postings senden an:
[EMAIL PROTECTED]
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an