0

ASP.NET で動的 Web サイトを開発しています。試行として、Panel1 にいくつかのコントロールを追加する以下のコードを試しました。ユーザーがボタンを初めてクリックすると、コントロールがパネルに追加されますが、ユーザーが同じボタンを 2 回目にクリックすると、前のコントロールが新しいコントロールに置き換えられます。しかし、ユーザーがボタンをクリックするたびに、コントロールを次々に追加したいと考えています。コードは次のようなものです。

Control c=Page.LoadControl("DData.ascx");
Panel1.Controls.Add(c);

私も試しました

Control c=Page.LoadControl("DData.ascx");
Panel1.Controls.AddAt(Panel1.Controls.Count,c);

しかし、これは最初の出力を置き換えます。これらのコントロールを追加する方法を教えてください。

4

2 に答える 2

0

ご想像のとおり、これは 1 つのコントロールを追加します。

Control c = Page.LoadControl("DData.ascx");
Panel1.Controls.Add(c);

この方法で、好きなだけコントロールを追加できます。

ただし、永続的/ステートフルな方法 (データベース、セッション、 ViewStateなど)で追加するコントロールを追跡する必要があります。

ページが読み込まれるたびに、コントロール ツリーを再構築する必要があります。

同様の質問に対する私の回答を参照してください。

于 2012-10-14T08:29:22.097 に答える
0

asp.netページのライフサイクルについてかもしれません。ページが読み込まれるたびに、初期状態に戻ります。ボタン クリック イベントはページの読み込み後に処理され、ページには 1 つのコントロールしかありません。クリックするたびにコントロールを動的に追加するボタンをご覧ください

于 2012-10-14T08:49:04.627 に答える