У меня есть страница, на которой я создаю динамическую таблицу, содержащую динамические элементы управления, которые вызывают события. Это работает, но я не хочу повторно генерировать эту таблицу в некоторых событиях (например, после page_load) для печати изменений таблицы.
Я понимаю проблему, потому что в данный момент мои элементы управления не сохраняются в состоянии просмотра, потому что они создаются после page_load, и их события не возникают. Но как я мог это сделать?
Вот мой код:
protected void Page_Load(object sender, EventArgs e)
{
generateTable(); // When pass just here, it works well
}
private void generateTable()
{
Table tbl = new Table();
// Here I create my table with controls
tableContainer.Controls.Clear(); // tableContainer is a Panel fixed in aspx page
tableContainer.Controls.Add(tbl);
}
protected void txt_TextChanged(object sender, EventArgs e)
{
// Do some stuff to change values in the table
generateTable(); // Re-generate (but events will not be raised)
}
ОБНОВЛЕНИЕ 1:
Я подумал о чем-то (что усложняет мою разработку), но я должен сделать generateTable, который создает все мои строки и элементы управления и вызывает его на каждой странице page_load. А с другой стороны создать другой метод, который заполняет элементы управления? Так что по событиям я называю вторую.
Но моя таблица создается динамически, и элементы управления также могут быть добавлены после события (у меня есть раскрывающийся список, который создает новую строку и элемент управления в таблице, поэтому я тоже застрял здесь, потому что я не увижу строку сначала постбэк?)