2012-02-23 23 views
3

私はASP.NETプログラミングを初めて利用しています。 ボタンをクリックすると、現在のページにコントロールを追加したいと思います。ASP.NETで現在のページを複数回(追加)変更するにはどうすればよいですか?

現在、これがトリガーされますイベントです:

protected void Button_Click(object sender, EventArgs e) { 
    LiteralControl litctrl = new LiteralControl("<div> Testing " + DateTime.UtcNow.Millisecond +" </div>"); 
    form.Controls.Add(litctrl); 
} 

これは、最初のクリックで正常に動作しますが、私はもう一度クリックすると、私は余分なdiv要素をフォームに追加され得ることはありません。新しいdivが作成されますが、前のdivは失われます。

どうして私は現在のページでコントロールを追加することができますか?

+0

をこれはしばしば "動的" コントロールを追加するとして知られています。例については、http://www.stev.org/post/2011/03/02/ASPNET-Dynamic-Controls.aspxを参照してください。 ASP.Netのページライフサイクルを理解することも不可欠です。http://msdn.microsoft.com/en-us/library/ms178472.aspx – dash

答えて

3

http://chiragrdarji.wordpress.com/2009/05/20/maintain-viewstate-for-dynamic-controls-across-the-postback/を参照してください。 ASP.NET Webformsで動的コントロールを追加することは、ポストバックとページライフサイクルの理解の間に難しいダンスです。任意のViewState要件を投げると、さらに深い理解が必要になります。

要件に応じて、すべてのポストバックで動的に追加されたコントロールを再作成する必要があります。あなたがしていないので、それは消えます。

2
関連する問題