ASP.NET 4.0. Искам да разреша на потребителите да преглеждат/редактират елементи от клиентски лиценз. Лицензът има 1-M продукти и списъкът с продукти ще се разширява с течение на времето, така че динамично създавам списък с всички продукти (в Page_Load) с квадратче за отметка, за да кажа дали лицензът има този продукт, като този:
CheckBox cbxProduct = new CheckBox();
cbxProduct.ID = "cbxProduct" + product.ID.ToString();
Мога да намеря тези динамични контроли и да получа достъп до техните стойности в PostBack, като използвам:
CheckBox cbxProd = (CheckBox)pnlLicenseDetails.FindControl("cbxProduct" + productID.ToString());
но само ако току-що са били пресъздадени в Page_Load (или Page_Init, изглежда няма значение). Проблемът е, че искам потребителят да може да премахне отметката от квадратче, за да премахне продукт от лиценза и след това да запази резултатите. Но за да намеря квадратчето за отметка и да определя неговата стойност, трябва да създам отново контролите, което разбира се изтрива всяка въведена от потребителя стойност.
Ако се опитам да направя препратка към квадратчетата за отметка, без да ги създавам отново, разбира се получавам грешка „препратката към обект не е зададена...“. Така че имам нужда от някакъв начин да уловя стойностите, въведени от потребителя, преди да бъдат изтрити.
Предложения?