0

表形式のデータがあり、すべての行の最後の列に動的リンクボタンが追加されています。

LinkButton link = new LinkButton();
link.Text = "Edit";
link.ID = dt.Rows[dt.Rows.IndexOf(dtRow)][0].ToString() + "|" + dt.Rows[dt.Rows.IndexOf(dtRow)][1].ToString();
link.ClientIDMode = System.Web.UI.ClientIDMode.AutoID;
cell.Controls.Add(link);
link.Click += new EventHandler(EditClicked);

編集リンクが表示され、クリックするとポストバックも実行されますが、イベントEditClickedはまったく発生しません。

4

1 に答える 1

0

問題は、LinkBut​​tonを動的に作成していて、ページが読み込まれたときにLinkBut​​tonを再作成しないことです。

コントロールを動的に作成し、ポストバック時に再度作成しない場合(Page_Loadまたは、できればでPage_Init)、イベントは発生しません。

これを解決する1つの方法は、非表示フィールドを使用する
ことです。リンクボタンを動的に作成する場合は、非表示フィールドに特別な値を設定します。次に、Page_Load(内のif (IsPostback))で非表示フィールドを確認し、特別な値がある場合は、それらすべてのコントロールを再作成します。

于 2012-11-25T08:40:51.067 に答える