- PR -

グリッドの列順変更

1
投稿者投稿内容
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2004-06-03 18:59
いつもお世話になっております。
C#.NETでWeb開発しております。

過去レスを探していたのですが、決定的なものが見つけられず
質問させていただくことにしました。

DataGridで検索結果を表示しているのですが、
現在はクライアント側でTemplateColumnやBoundColumnを
直接書いて列を任意順に並べています。
この列の順番をWeb.config等で設定できるようにしたいと考えております。
ただ、現在のBound方法ですと当然できません。
表示方法の勉強不足だけなのかもしれませんが、
ご伝授いただけますでしょうか。
よろしくお願いいたします。
Micky
大ベテラン
会議室デビュー日: 2002/09/04
投稿数: 137
投稿日時: 2004-06-04 10:58
Mickyでございます。
お世話になっております。
いつもご回答されているみなさまありがとうございます。

引用:

BB.NKさんの書き込み (2004-06-03 18:59) より:

現在はクライアント側でTemplateColumnやBoundColumnを
直接書いて列を任意順に並べています。



えっと、「直接書いて」と言うのは、コードビハインド側でしょうか?
HTMLソースの方でしょうか?
HTMLソースの方に書いていらっしゃるのなら、
まずコードビハインドで動的にDataGridを構成される事を
オススメします。

引用:


この列の順番をWeb.config等で設定できるようにしたいと考えております。




動的に構成できるようになりましたら、あとは力技でもできそうですが
こんなのはいかがでしょうか?

デザインパターンのFactory系のパターンに当てはめまして
Web.configに設定した情報を元に、どんな種類のカラムを
どのフィールドに割り当て、どの順番で出力するかと言うのを
Factoryクラスに任せるようなクラス設計にするんです。

ま、Web.configへの情報をどうもたせるか?って言うのもありますが、
これで、オブジェクト指向っぽく実現できるのでは?と思います。

追記:ふと思いついたんですが…
Web.configじゃなくて、XMLを使ったらどうでしょう?
DataGridの構成をMappingするようなXMLを作っておけば
かなり柔軟に動的なDataGridを生成できるように思います。

[ メッセージ編集済み 編集者: Micky 編集日時 2004-06-04 11:48 ]
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2005-04-20 12:01
かなり古いものに書き込んですみません。
やっと工数が取れたのでDataGridの列並び替えと表示非表示を調べました。
(なんと簡単なことか。。。)

DataGrid1_ItemDataBoundイベントで、
int 対象列index番号 = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["対象列indexをWeb.configで設定"].ToString());
bool 対象列表示フラグ = bool.Parse(System.Configuration.ConfigurationSettings.AppSettings["対象列フラグをWeb.configで設定"].ToString());

e.Item.Cells[対象列index番号].Visible = 対象列表示フラグ;


DataGrid1_ItemDataBoundイベント内では、各カラムをindexで指定するため
各カラムのindexと表示フラグを全て設定ファイルでもつことで実現できそうです。

ただ、Web.configの設定をやたらめったら増やしていって後々問題にならないかなぁーと
思っていますが。。。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-04-20 12:10
引用:

BB.NKさんの書き込み (2005-04-20 12:01) より:

ただ、Web.configの設定をやたらめったら増やしていって後々問題にならないかなぁーと
思っていますが。。。



前のMickyさんのレスに、XMLファイルを別に作ったらどうでしょうと書かれていると思います。
考慮してみては、いかがでしょうか?

_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
BB.NK
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 138
投稿日時: 2005-04-20 12:51
仰る通りXMLで実現したいです。
ただ、どんなスキルのSEでも設定できるようにしておきたいですが。

それと、、、XMLで実装するためにどのようにしたらいいか検討がつきません。
もう少し情報をいただけないでしょうか。

1

スキルアップ/キャリアアップ(JOB@IT)