- - PR -
(VS2003)DataGridに動的に追加した列がPostback後に消える
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-03-11 15:23
いつもお世話になっております。
VS2003でASP.NET(VB)で開発をしております。 (やりたいこと) ・テーブル名がパラメータで渡され、そのテーブルの内容をDataGridで表示したい。 ・DataGridに対しては、各テーブル応じた列数を動的に追加したい。 ・テーブル情報を基に、INSERT,UPDATE,DELETE文を自動生成する。 ・これらを行うことで、簡易的なマスタメンテ機能を動的に実現したい。 グリッドに対するTemplate列の追加やデータのBind表示は出来たのですが、 Postbackすると追加した列が消えてしまうことが判明しました。 (DataGrid.Columns.Countが、デザイナにDataGridを貼り付けたときの状態に 戻ってしまう) データ表示するだけなら毎回DBにSELECTすれば良いのですが、入力項目もあるので 困っております。こういう仕様なら別の方法を考えようと思っておりますが、 回避する方法があればお教えください。宜しくお願いします。 |
|
投稿日時: 2009-03-11 16:33
以前似たような処理をつくったことがありますが、
動的にカラム追加する場合、Page.Initのタイミングで追加しないと PostBack時に保持されなかった気がします。 |
|
投稿日時: 2009-03-11 16:59
た様
ご回答いただきありがとうございます。 お教えいただいたとおり、PageInitで毎回生成してやれば、 Postback後も列と項目値が引き継がれました。 最悪、Postback時はユーザの全項目の入力値をJavaScriptでHidden項目に持たせて Requestで取得し、その値でDataGridを再構築する方法など考えておりました。 あと、予めデザインで100個ぐらいTemplate列を書いておいて、不必要な列は ロジックでVisibleを制御するとか・・・。DataTable生成ロジックはクラス化 しているので、Callする場所だけ変えれば済みそうです。 どうもありがとうございました。 |
1