4

したがって、私の問題は、動的に作成されたチェックボックスにイベントハンドラーを追加したいということです。私はすでにこれを行う他の方法を検討しており、チェックボックスを含む動的テーブルを作成することが私にとって最良のオプションであると判断しました。ViewStateを手動で管理する必要があるため、これらのチェックボックスをコントロールツリーに追加していません。いずれにせよ、私のコードは、CheckBoxのCheckChangedイベントが発生しないことを除いて、あらゆる方法で機能します。このイベントハンドラーをpageLoadイベントのチェックボックスに追加していますが、どのページイベントでも同じ結果が得られるようです。

CheckBox chbxLv1 = new CheckBox();
chbxLv1.ID = "DymanicallyCreatedIDForIdentification";
chbxLv1.AutoPostBack = true;
chbxLv1.CheckedChanged += new EventHandler(this.checkChanged);

/* Way lower in my code */

protected void checkChanged(object sender, EventArgs e)
{
//Some code goes here which never seems to execute... grrr
}

これは最初はViewStateの問題かもしれないと思い、かなりの調査を行いました。私は今、イベントハンドラーを追加することで何か馬鹿げたことをしていると思っています。このイベントが発生しない理由はわかりませんが、コントロールにイベントを追加するのは少し新しいです。ここに代理人が必要ですか?

-ローマ人

4

1 に答える 1

2

動的に読み込まれたコントロールをASP.NETページのライフサイクル中に適切に処理するには、OnInit中に(または実際にはLoadViewStateの前に)ページに追加する必要があります。そうしないと、状態情報が維持されず、実際に可能になります。 、ページのコントロールグラフで物事が追加される方法/場所に応じて、ビューステートを破損します。

于 2011-11-03T20:20:42.043 に答える