- - PR -
ASP.NETのDataGridに動的に列(テンプレート列を含む)を作成するには?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-05-11 10:26
いつもお世話になっております。ASP.NET初心者で御座います。
Asp.NetのPageLoadイベントにてDataGridを動的に作成する場合についての質問です。 条件によりDataGridの列数が動的に変化し、その中にはテンプレート列(TextBox)も含みます。 初期状態は、DataGridを画面に貼り付け、手を加えていない状態です。 どのようにコーディングすればよいのかご教授お願い致します。 |
|
投稿日時: 2005-05-11 17:25
背古井です
以下の方法で一応作成できます。 http://www.microsoft.com/japan/msdn/vs/webapplication/vbtchCreatingWebServerControlTemplatesProgrammatically.asp#vbtchcreatingwebservercontroltemplatesprogrammaticallyanchor1 ただし、このまま作成すると、PAGE_ROADの時に必ず初期化されてしまいます。 つまり、ポストバックの度に再度作成が必要となります。 表示させた後に、その他のアクション(グリッド内のボタンをクリックする等)する場合は注意が必要です。 |
|
投稿日時: 2005-05-12 18:17
背古井様、ご教授有難う御座います。
また、返信が遅くなってしまい申し訳ございません。 教えて頂いたサイトを参考に実行時にテンプレートを作成することができました。 しかし、Page_Load時に初期化されてしまうところでつまずいています。 処理の流れは、 @Page_Load時にグリッドを作成(動的にテンプレートを追加) Aクライアント側で追加したテンプレートに入力 Bコマンドボタンクリックイベントにてテンプレートの入力値を取得し、DB更新 です。 BでPostBackが発生した時点で入力値が失われない様にすることが可能ですか? もし、不可能な場合は、今回の様な処理はどうすればよろしいのでしょうか? お忙しい中申し訳御座いませんが、どうぞ宜しくお願い致します。 |
|
投稿日時: 2005-05-12 18:29
動的なコントロールの追加はPage.LoadではなくPage.Initでやるのが吉です。
|
|
投稿日時: 2005-05-16 10:18
背古井様、todo様、お世話になっております。
返信が遅くなってしまい申し訳御座いません。 todo様からのご指摘通りPage.InitにてDataGridを動的に作成したところPostBackが発生した場合にも入力値が失われることがなくなりました。 皆様のご親切なアドバイスに感謝致します。 これからもどうぞ宜しくお願い致します。 |
1