Kontrollen mit Postbackdaten während LoadPostBack Daten Bühne bestückt sind. Wenn kein dynamisches Steuerelement erstellt und während OnInit Stadium, aber später hinzugefügt wird, wird Steuerelement nicht mit Postback-Daten aufgefüllt, wie in dem folgenden Code ersichtlich ist, wobei Label1 eine leere Zeichenfolge anzeigen wird:
public partial class _Default : System.Web.UI.Page
{
TextBox textB;
protected void Page_Load(object sender, EventArgs e)
{
textB = new TextBox();
textB.ID = "dynamicTextC";
Panel1.Controls.Add(textB);
Label1.Text = textB.Text; // displays an empty string
}
Aber wenn ich setzen Label1.Text = textB.Text; innerhalb Ereignishandler subscribe to TextB TextChanged Ereignis, dann Label1 wird angezeigt Text Benutzer eingegeben in TextB. Nun wird vorgeschlagen, dass die Steuerelemente zweimal mit den gleichen Postback-Daten gefüllt werden - während der LoadPostBack-Datenstufe und während Raise Postback Events stage. Warum muss die Kontrolle zweimal mit denselben Postback-Daten gefüllt werden?
BTW - ich merke, dass während Raise Postback-Events Bühne Steuerpostbacks Wert vergleicht der vorherigen Seite Lastwert auf Postback und entscheidet dann, ob Ereignis ausgelöst werden muss
TextBox textB;
protected void Page_Load(object sender, EventArgs e)
{
textB = new TextBox();
textB.ID = "dynamicTextC";
Panel1.Controls.Add(textB);
textB.TextChanged += textB_TextChanged;
}
protected void textB_TextChanged(object sender, EventArgs e)
{
Label1.Text = textB.Text; // Label1 displays value user
entered into textB
}
danke
EDIT:
Das Steuerelement wird erstellt erhalten und wird Teil der Ansichtszustand sein (da es sich um eine serverseitige Kontrolle ist. Daher brauchen sie nicht wieder auf Postback erstellt werden)
Das ist nicht das, was auf einem Postbacks, zumindest in meinem Fall TextBox verschwindet passiert.
Ich verstehe nicht. Warum sollte ich es in die "if" -Anweisung einfügen? – SourceC
Ahhh, das gefürchtete if (! IsPostBack). Gott, ich bin froh, dass ich MVC jetzt benutze. – mmcdole