2011-01-06 19 views
1

Ich habe eine Gridview - GridView1.
Ich füge Zeilen zu diesem Gridview1 dynamisch durch Code hinzu.
Eine der Spalten ist eine Dropdown-Liste, die von einer sqldatasource liest.
Die Textfelder, Dropdown-Listen & SQL-Datenquellen sind alle Arrays.
Wenn ich den Wert der Dropdown-Liste ändere, behält sie ihren Status auch dann bei, wenn die Seite bei einem Klickereignis erneut geladen wird. Das ist in Ordnung. Die Werte der Textfelder werden jedoch nicht beibehalten.
Angenommen, ich gebe "Hallo Welt" in das Textfeld ein & klicken Sie auf "Hinzufügen", ich möchte den Textwert in der Dropdownliste (die ich lesen kann) & den Wert in Textfeld (die leer zurückgibt). Bitte schlagen Sie eine Methode vor so dass ich bei add button click den Wert, den ich in das Textfeld eingegeben habe, wieder abrufen kann. Jede Textbox hat eine eindeutige ID & ich die ID versucht, mit seinen Wert erhalten
zB
geschützt Sub Add_Click (ByVal Absender als Gegenstand, ByVal e As System.EventArgs) behandelt add.click
{
Dim valueinText = gettext (1) .text }
jetzt, wenn ich "Hallo Welt" in Textfeld eingeben: gettext (1),
reults: valueinText = ""Dynamische Textfelder

Vielen Dank im Voraus

Antwort

1

Sie müssen die Werte für ungebundene Textfelder zurücksetzen, die beim Zurückschreiben ihren Wert aus dem Code erhalten. In Ihrem Page Load Event ...

0

Ich habe versucht, die gleichen Textfelder bei jedem Ereignis page_load zu erstellen. Aber das löschte gerade ihre Werte & ihre client_ID änderte sich ständig.

Stattdessen habe ich versucht, alle Textfelder freigegeben und erstellt sie nur einmal auf add click -Ereignis, fügte sie zu einer Zeile (die wiederum freigegeben ist) und auf page_load wenn page.postback = true Ich habe gerade die Zeile der Tabelle hinzugefügt nochmal. Wenn Sie dies nicht tun, wird die Zeile beim erneuten Laden nicht angezeigt.

Dies löste mein Problem (jetzt wurden die in Textfeld eingegebenen Werte nicht wie zuvor gelöscht). Ich griff auf den Wert von classname.textboxname (i) .text.

Jetzt scheint die Lösung offensichtlich, aber ich verbrachte ein paar Tage damit, dieses Problem zu lösen.

Danke!