2016-04-10 18 views
1

Nun, ich habe einige Textfelder in einer CS-Datei dynamisch erstellt und ich möchte speichern/speichern ihre Werte, wenn ich auf die Schaltfläche Update im Bearbeitungsmodus einer Detailansicht klicken, so habe ich gesetzt button onclick-Ereignis zu einer Funktion, dies zu tun.Speichern Sie einige Werte vor der Schaltfläche PostBack

Das Problem ist, dass das Postback-Ereignis vor dem "OnClick" -Ereignis auftritt, und dann die Werte der Textfelder verloren gehen.

Wie kann ich zuerst ihre Werte speichern/speichern ?.

Bitte, hilf mir dabei.

Vielen Dank im Voraus!

+0

Sie meinen, das Postback (auf dem Client) passiert, bevor das "OnClick" passiert (auf dem Server), klingt richtig. –

Antwort

0

Sie können das erste Laden der Seite ermitteln oder mit der Page.IsPostBack-Eigenschaft zurückschreiben (OnClick, SelectedItemIndexChanged like ..). Sie sollten diesen Eigenschaftswert im Page_Laoad-Ereignishandler überprüfen. .

+0

Hallo user565002, Ja, aber in diesem Moment sind meine Werte verloren und ich kann nicht mehr darauf zugreifen, deshalb möchte ich sie speichern, bevor Page_Load ausführt – Mazinger

+0

OK, wenn Ihr Steuerelement dynamisch erstellt wurde, sollten Sie Wert im ViewState-Objekt http speichern: //www.codeproject.com/Articles/502251/How-to-create-controls-dynamically-in-ASP-NET-and – Chris

+0

Dank user565002, werde ich einen tieferen Blick auf diesen Artikel.Es sieht interessant aus. Vielen Dank! – Mazinger

0

Es hilft, die ASP.NET-Seite Lebenszyklus zu verstehen (siehe für weitere Informationen here.) Grund Ereignisse sind wie folgt:

  • PreInit
  • Init
  • PreLoad
  • Last (Kontrollen sind hier mit Postback-Werten gefüllt)
  • Kontrollereignisse (OnClick passiert hier)
  • PreRender
  • Render
  • Unload

der Regel während der „Init“ Ereignis, das Sie alle Steuerelemente erstellen möchten, einschließlich dynamische Steuerelemente für den Benutzer.

Während des Load-Ereignisses kopiert asp.net das gesamte Post-Datum vom Client zurück in die Steuerelemente auf der Seite. Damit dies am Postback funktioniert, müssen die gleichen Steuerelemente, die beim ursprünglichen Rendern erstellt wurden, in derselben Reihenfolge mit denselben IDs vorhanden sein.

Dann können Sie in PreRender den Seitenstatus ändern, einschließlich Hinzufügen und Entfernen von Steuerelementen für den nächsten Beitrag.

Also hier ist zu klären, wie ich Ihre Seite fließen vorstellen würde:

  • OnInit - Konstruieren Sie Ihre Kontrollen und mit den Anfangswerten füllen.
  • OnLoad - Während des Postbacks wird Ihr Steuerelement mit den aktualisierten Werten des Benutzers gefüllt.
  • OnClick - Verwenden Sie das Ereignis der Benutzer Schaltfläche klicken Sie, um die aktualisierten Werte zu speichern.
+0

Vielen Dank für Ihre Antwort John, also stellen Sie sich vor, dass ich einen Knopf drücke und die Seitenereignisse in der Reihenfolge beginnen, die Sie in Ihrer Liste angegeben haben. Soll ich die Funktion zum Erstellen dynamischer Controls im INI-Event aufrufen? Und wenn ja, in welchem ​​Fall könnte ich die "Vor-Button-Klick" -Werte für die dynamischen Steuerelemente erhalten? – Mazinger

+0

Fügen Sie dem Click-Ereignis des Schaltflächensteuerelements einen Listener hinzu. Dann können Sie sich die Werte aller Steuerelemente zu diesem Zeitpunkt ansehen. –

+0

Meinst du "OnClick"? Dies wird nach PostBack ausgeführt, wenn ich nicht falsch bin – Mazinger

Verwandte Themen