2011-02-09 8 views

答えて

1

すべてのポストバックに動的に作成されたコントロールを作成する必要があります。 ViewStateを保守して復元する場合は、IDを付与する必要があります。例えば

、これはTextBoxにページがロードされる最初の時間が表示されますが、どのsubsiquentページがロードに、制御が失われます。

protected void Page_Init(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     TextBox newControl = new TextBox() 
     { 
      ID = "newControl" 
     }; 
     SomeControl.Controls.Add(newControl); 
    } 
} 

しかし、あなたはすべてのポストバックのコントロールを作成する場合それはテキストだと同じIDで、その後、制御が維持されます。

protected void Page_Init(object sender, EventArgs e) 
{ 
    TextBox newControl = new TextBox() 
    { 
     ID = "newControl" 
    }; 
    SomeControl.Controls.Add(newControl); 
} 

ここdynamic controlsを扱う程度の良い品です。

+0

page_initで静的なコントロールのように自動作成されるように再作成することをお勧めします(あなたの言ったようにIDが一致する場合) – davidsleeps

+0

@davidsleeps - あなたは正しいです。回答が更新されました。 – GenericTypeTea

関連する問題