Pobieranie danych z dynamicznych textboxów

0

Witam
Stworzylem dynamiczne textboxy ( patrz kod), ilość ich zależna jest od dropdownlisty.

 
int numtexts = int.Parse(DropDown2.SelectedItem.Value);
            
            for (int i=1; i<=numtexts; i++) {
                System.Web.UI.WebControls.TextBox t = new System.Web.UI.WebControls.TextBox();
                t.Text = "TextBox" + i.ToString();
                t.ID = "TextBox" + i.ToString();
                Panel1.Controls.Add(t);
                Panel1.Controls.Add(new LiteralControl("<br>"));
             }

Pytanie moje jest następujące: w jaki sposób pobrać dane z tych textboxów po naciśnięciu przycisku, bo to co stworzyłem (kod poniżej) nie działa.

protected void bZmien_Click(object sender, EventArgs e)
	{
		int numtexts = int.Parse(DropDown2.SelectedItem.Value);

		for (int i = 1; i <= numtexts; i++)
		{
			TextBox t = (TextBox)Panel1.FindControl("tb" + i);
			if (t != null)
			{
				string str = t.Text;
				
			}
		}
	}
 

Problem jest taki, że w momencie naciśnięcia przycisku przeładowuje się strona i czyszczą się kontrolki.

0

Z tego co widzę to masz przy tworzeniu pełną nazwę "TextBox" + nr

t.Text = "TextBox" + i.ToString();
t.ID = "TextBox" + i.ToString();

Natomiast przy odczycie szukasz "tb" zamiast też pełnej nazwy "TextBox" i "i" też powinna być sprowadzona do tekstu

// źle -> TextBox t = (TextBox)Panel1.FindControl("tb" + i);
TextBox t = (TextBox)Panel1.FindControl("TextBox" + i.ToString()); // <- dobrze

1 użytkowników online, w tym zalogowanych: 0, gości: 1