「なぜ」コントロールがポストバック時に消えてしまったことを理解しています。これまでページ初期化で動的に行う必要があるものを作成するだけで大きな成功を収めました。しかし、私は、既存のドロップダウンリストの値に基づいてasp.netページにいくつかのコントロールを追加しなければならないとき、私のために分断されました。ダイナミックコントロールのシリアライズとリロード
私の質問は簡単ですし、良いコード例を見つけることができないようです。ドロップダウンリストの値に基づいてページにいくつかのコントロールを追加する必要があります。次に、これらの追加されたコントロールを他のポストバック(セッションは問題ありません)全体に保持します。 Dynamically Adding Controlsは、私はすべてのコントロールをシリアル化するための構文に苦しんでいます、など
これを制限することができます。私はこの関連の記事を見つけた
protected void Page_Init(System.Object sender, System.EventArgs e)
{
RebuildPlaceholder();
}
protected void ddlGroup_Change(System.Object sender, System.EventArgs e)
{
ExampleDataContext ctxExample = new ExampleDataContext();
var aryExample = (from rslt in ctxExample.mvExample
where rslt.label.ToLower() == ddlGroup.SelectedValue
select rslt);
foreach (var objExample in aryExample)
{
TextBox txtCreated = new TextBox();
txtCreated.ID = "ddl" + objExample.ID;
plcExample.Controls.Add(txtCreated);
}
StorePlaceholder();
}
private void StorePlaceholder()
{
//Need code to store all controls in a placeholder.
}
private void RebuildPlaceholder()
{
//Need code to rebuild all of the controls from Session.
}
:ここ
はのオフ動作するスニペットですページ上に既に存在する単一のプレースホルダーの子コントロールに、そのプレースホルダーのコントロールを保存/復元するだけです。このバージョンを4.0で使いやすくしたものがあれば、どのバージョンのASP.NETでも問題ありません。