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