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 は問題ではないようです) で再作成されたばかりの場合に限ります。問題は、ユーザーがボックスのチェックを外してライセンスから製品を削除し、結果を保存できるようにしたいことです。しかし、チェックボックスを見つけてその値を決定するには、コントロールを再作成する必要があります。これにより、もちろん、ユーザーが入力した値はすべて消去されます。
チェックボックスを再作成せずに参照しようとすると、もちろん「オブジェクト参照が設定されていません...」というエラーが発生します。そのため、ユーザーが入力した値が消去される前に、その値を取得する方法が必要です。
提案?