Имам страница, където създавам динамична таблица, съдържаща динамични контроли, които предизвикват събития. Работи, но не искам да генерирам повторно тази таблица в някои събития (така че след page_load), за да отпечатам модификациите на таблицата.
Разбирам проблема, той е, че в този момент моите контроли не се запазват в viewstate, защото са създадени след 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. И от друга страна, създайте друг метод, който попълва контролите? Така че в събитията аз наричам втория.
Но моята таблица се генерира динамично и контролите също могат да се добавят след събитие (имам падащ списък, който създава нов ред и контрола в таблицата, така че също съм заседнал тук, защото няма да видя реда в началото обратно изпращане?)