AJAXパネルポストバックでダイナミックIMAGEBUTTONへのハンドルを取得する方法
-
21-08-2019 - |
質問
ユーザは、リスト内の項目を選択したときに、
Iは、新しい行のテーブルセルにIMAGEBUTTONを書き込む
ImageButton imgbtnRemove = new ImageButton();
imgbtnRemove.ID = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.CommandName = "uxStandardLetterDeleteImage_" + items.letterName;
imgbtnRemove.ImageUrl = items.remove;
imgStatus.AlternateText = "Remove";
tRow.Cells[3].Controls.Add(imgbtnRemove);
新しいIMAGEBUTTONをクリックすると、、私はそれへのハンドルを取得するように見えることはできません。私はまた、各ポストバックにテーブルをリロードPage_PreRenderイベント、でそれを見ています。
string returnData = Request.Form.ToString();
が、フォームを反復する画像を制御する
if (c is System.Web.UI.WebControls.Button ||
c is System.Web.UI.WebControls.ImageButton)
それを見つけることができません。私は手動で入れた場合、私はそれを見つけることができます:
imgbtnRemove.Click += new System.Web.UI.ImageClickEventHandler(this.ButtonClick);
をPage_Loadで、その後、クリックイベントでそれをつかむます:
switch (((System.Web.UI.WebControls.ImageButton)sender).CommandName)
...
が、新しい行が追加および削除されているため、これは、プログラムではなく醜い取得します。私は、サーバー側のコードからオンザフライでダイナミックIMAGEBUTTONの作成と検索へのエレガントな解決策が存在しなければならないと思っています。私は掘るの多くを行ってきたが、この1は私に遊説されます。
事前のおかげで...
解決
あなたが(例えば、項目選択したイベントでの)ページのライフサイクルのイベント処理フェーズの間に動的なコントロールを作成する場合は、
、制御は次のポストバックで消えてしまいます。
のViewStateに登録する動的コントロールのために、彼らは、イベントのライフサイクルの初期段階で作成されなければならない。
また、あなたがフォームのコントロールを反復していると言う...あなたは、テーブルのセルにIMAGEBUTTONを追加しているとき。あなたは再帰的にIMAGEBUTTONを探すために、コントロール階層構造を下降していますか?
所属していません StackOverflow