Нет необходимости добавлять текстовые поля к панели этого класса.
public List<TextBox> textbox_generator(int days_count)
{
var textBoxes = new List<TextBox>();
for(int i = 0; i < days_count; i++)
{
txt_desc = new TextBox();
txt_desc.ID = "txt_desc" + i.ToString();
txt_desc.CssClass = "form-control";
txt_desc.Attributes.Add("placeholder", "Enter day " + i + " description");
txt_desc.TextMode = TextBoxMode.MultiLine;
textBoxes.Add(txt_desc);
}
return textBoxes;
}
Затем измените код позади, чтобы:
add_tour tour_obj = new add_tour();
int days_count = 2;
var textBoxes = tour_obj.textbox_generator(days_count);
foreach(var textBox in textBoxes)
{
itinerary_panel.Controls.Add(textBox);
}
Обратите внимание, что вы должны быть осторожны, когда вы добавляете эти элементы жизненного цикла страницы. См. Microsoft documentation.
Это не дает вам знать, что нужно знать о конкретной странице.
Кроме того, вы должны согласовать свои соглашения об именах с стандартами C#. Используйте PascalCasing. textbox_generator
должно быть TextBoxGenerator
и т. Д. И вы, вероятно, можете сделать textbox_generator
статическим методом, если ему не нужны никакие поля или свойства его класса.
Ваш класс не должен касаться элементов управления. Код позади должен обрабатывать сбор значений и передавать их другим классам. – mason
то что мне делать? –
Что ты имеешь в виду? Я просто сказал вам, что делать. – mason