シリアル化されたディクショナリ(controlId-文字列、controlValue-文字列)を使用して、1つのWebフォームからすべてのコントロールを保存しようとしています。次に、そのディクショナリを逆シリアル化し、コントロールに値を動的に入力します。
問題は、一部のコントロールにAutoPostBackがtrueであり、イベントハンドラーもあることです。これらのイベントハンドラーを動的に呼び出す方法はありますか?コントロールのIDによる別の切り替えを避けたい。
元:
foreach (KeyValuePair<string, string> kvp in dict)
{
Control c = findControlRecursive(Page, kvp.Key);
if (c != null)
{
switch (c.GetType().Name)
{
case "TextBox":
((TextBox)c).Text = kvp.Value;
if (((TextBox)c).AutoPostBack) .......
編集:
私には10の異なるフォームがあるとしましょう。それぞれに約50のコントロールがあります。データセットを追加/編集したい。各コントロールの列を持つデータベース内のテーブルを避けようとしているので、シリアル化を使用したいと思います。