1

日付範囲の間に発生した単一のテーブル (TServices) 内のすべての行を検索し、フォームの下の動的テーブルに入力するフォームがあります。

ここで、テーブル内の各リストの横に削除 ImageButton を追加しています。テーブル セルに ImageButtons を追加するための C# コード ビハインドを次に示します。

        ImageButton btnRemoveService = new ImageButton();
        btnRemoveService.EnableViewState = true;
        btnRemoveService.ImageUrl = "/images/icons/trash.gif";
        btnRemoveService.Click += new ImageClickEventHandler(btnRemoveService_Click);
        btnRemoveService.ID = "btnRemoveService-" + row["BillingID"].ToString();
        btnRemoveService.CommandArgument = row["BillingID"].ToString();
        tblCell.Controls.Add(btnRemoveService);

btnRemoveService_Click() に何も入れなくても、動的テーブルからすべてのデータが消えます。ストアド プロシージャを実際に削除するコードを挿入すると、動的テーブルからデータが消え、データベースで何も変更されません。

編集: populate コードを独自の関数に移動し、btnRemoveService_Click() の最後で呼び出しました。これはデータをリロードすべきではありませんか?

4

1 に答える 1

1

あなたのエラーは、動的に作成されたコントロールをロードごとにページに追加する必要があるという事実によるものです。それらを page_init メソッド内に再度追加すると、ビューステートをロードし、クリック イベントを正常に発生させるために存在します。これはすべて、ASP.NET ページの読み込みプロセスに関連しています。

于 2008-10-14T15:08:41.207 に答える