私は非常に動的なアプリケーションを扱う大規模な頭痛を受けています。動的プレースホルダの制御とイベントの添付
私はからの動的プレースホルダコントロールを使用しています:動的に再作成ポストバック後にコントロールを作成しようとしたときにこれが私に手間の節約
http://www.denisbauer.com/ASPNETControls/DynamicControlsPlaceholder.aspx
。
誰かがチェックボックスコントロールにイベントハンドラを接続することに問題がありましたか?
ここに動的に作成されたチェックボックスのコードを示します。
// Now I create my checkbox
chkDynamic = new CheckBox();
string chk = "chk";
// Add it to our dynamic control
chkDynamic.CheckedChanged += new EventHandler(chkDynamic_CheckedChanged);
chkDynamic.ID = chk;
DynamicControlsPlaceholder1.Controls.Add(chkDynamic);
chkDynamic.Text = "hey";
これは機能しますが、そのようなイベントは接続されていません! ここに私のイベントハンドラがあります!
protected void chkDynamic_CheckedChanged(object sender, EventArgs e)
{
if (((CheckBox)sender).Checked)
Response.Write("you checked the checkbox :" + this.chkDynamic.ID);
else
Response.Write("checkbox is not checked");
}
これで、通常のプレースホルダまたはパネルを使用する場合、これは素晴らしい結果を示します。
Ex。この行の変更:
DynamicControlsPlaceholder1.Controls.Add(chkDynamic);
Panel1.Controls.Add(chkDynamic);
へのそしてそれは完璧に動作します。
誰かが私に教えてください、これはこのコントロールの問題なのでしょうか?
DynamicControlsPlaceholderを使用しているときにエラーが発生していないのは、予期せぬイベントだけです。
「CheckedChanged」ねえ、応答していただきありがとうございます。私もそのことを考えていましたが、実行時にダイナミックコントロールを追加するオプションを与えました。したがって、これは決定できませんOnInit()私は思っていません:( – clamchoda
あなたの質問を再読した、私は少し良いことを理解していると思う。ページが転記されたら、**既存の**制御構造。その後、ポストバックを引き起こしたイベントが発生すると、ダイナミックコントロールのリストに新しいコントロールを追加し、コントロールリストをリバインドします。 –