Hallo ich erstelle eine dynamische Anzahl von Textfeldern. Nachdem der Benutzer diese Felder ausgefüllt hat sollen diese nach dem bestättigen mit dem OkButton ausgelesen werden. Aber ich komme nicht an den Text wer kann helfen.
//Erstellen der Textboxen
for (int Index = 1; Index <=TextboxAnz; Index++)
{
TextBox pTextbox = new TextBox();
pTextbox.ID = "TextBox" + Index;
pTextbox.Text = "Bitte Text eingeben";
Placeholder_Textbox.Add(pTextbox);
}
//Abfrage nach ButtonEvent
string[] pResultString = new string[TextboxAnz];
for (int Index = 1; Index <= TextboxAnz; Index++)
{
string pTextBoxID = "TextBox" + Index;
TextBox pTextbox = (TextBox)Placeholder_Textbox..FindControl(pTextBoxID);
if (pTextbox != null)
{
pResultString[Index-1] = pTextbox.Text;
}
}
Original von Kai.
pTextbox ist immer Null?
Sorry aber ich verstehe die Frage nicht
Setz doch nen Haltepunkt und schau, welchen Wert pTextbox hat.
sbertl
Original von sbertl000
Setz doch nen Haltepunkt und schau, welchen Wert pTextbox hat.sbertl
Hab ich gemacht und es kommt wirklich immer "null" herraus
Das ist in der Tat ein großes Problem.
Ich hab nun ewig gebraucht bis ich es geschafft habe dynamische Textboxen zu kreieren.. aber das Problem ist man kommt an den Wert nicht mehr ran. Die kreierten Textboxen sind beim Event Auslösen alle weg..
Also wohl doch zurück zu HTML input feldern........
Original von Paulo
Ich hab nun ewig gebraucht bis ich es geschafft habe dynamische Textboxen zu kreieren.. aber das Problem ist man kommt an den Wert nicht mehr ran. Die kreierten Textboxen sind beim Event Auslösen alle weg..
Klar, da der Zustand des Placeholders nicht gespeichert wird. Du musst die Textboxen also nach jedem PostBack erneut hinzufügen.
Ja aber wie kommt man an den eingegebenen Inhalt der Textboxen heran.. ?
Der Inhalt bleibt erhalten...Du musst sich nur per FinControl() suchen und entsprechend casten.
Vielleicht findet FindControl() die Textbox nicht. Probier mal folgendes: lass dir alle Controls ausgeben. Ungefähr so:
foreach(Control cntrl in Controls) {
lblTest.Text += cntrl.ID + "<br>";
}
Dabei sollte er alle Controls auflisten. Das ganze noch rekursiv gestallten, denn du sagtest, dass die Textboxen in Tabellenspalten liegen.
Irgendwo müssen die sein. Die können nicht verschwinden 😉
Controls anhander der ID rekursiv suchen:
http://blog.veloursnebel.de/PermaLink,guid,b10088db-f1d9-4334-a893-83d80ee9c002.aspx