2012-01-12 6 views
1

Ajaxコンテナでテキストボックスのテキストが変更されたりボタン上でマウスがクリックされて表示されるDivボックスを動的に変更する単一のASPフォームを作成しています。私が持っている問題は、ASPのホストサーバー上に座っている.csvファイルテンプレートからすべてのオブジェクト(テキストボックス、ラジオボタン、ボタンなど)を動的に作成するPage_Load関数です。ポストバックが発生するたびに、Ajaxウィンドウ内でも、Page_Load関数が再度呼び出され、.csvファイルが再読み込みされ、すべてのオブジェクトが再作成されます。ASP.NetとAjaxサーバーコードが一定の再作成の背後にある

オブジェクトを再作成する前にIsPostbackを確認しようとしましたが、オブジェクトは作成されていないため無効化されています。このページは毎回まったく新しいページです。

アイデアをいただければ幸いです。

+0

ページ出力キャッシュを? –

答えて

1

は再作成/あなたの動的なコントロールを操作するというよりもPage_LoadのPage_PreInitイベントを使用してみてください:

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    // create controls here 
} 

さらに詳しい情報:http://msdn.microsoft.com/en-us/library/ms178472.aspx

+0

ちょうどPreInitを試してみましたが、関数がPage_Loadと同じ変更を行ったときにも呼び出されました。私はそれから抜け出すことができるものを見てみましょう。 – Skintkingle

+0

この回答は私に必要な答えを見つけるために私を導きます。再生後にフィールドの値を再確認しなければならなかった。ページの構成をPreInitに入れた後、何か他のことが起こる前に何をする必要があるか分かりました。 – Skintkingle

1

ダイナミックコントロールを作成するときは、各ポストバック時にコントロールを再作成するという責任を受け入れる必要があります。 すべてのページのPage_Initイベントでコントロールを作成し、ポストバックかどうかを 要求してください。 Page_Initイベントでコントロールを作成した場合、 ユーザーが入力した値は、各ポストバック時に自動的に入力されるので、 にアクセスできます。

関連する問題