- PR -

DataGrid のヘッダーを複数行に

投稿者投稿内容
遠藤@DA
@ITエディタ
会議室デビュー日: 2001/08/25
投稿数: 60
お住まい・勤務地: Tokyo
投稿日時: 2003-12-05 19:52
引用:

cowboyさんの書き込み (2003-12-05 16:59) より:
そのページをポストバックした場合、追加したヘッダーはなくなり、
DataGrid のヘッダーは元 (1行) に戻ってしまいますが、
追加したヘッダーを維持することはできないのでしょうか?



追加した行についてはビューステートに保存されるわけではないので、
毎回(ポストバックのたびに)行を追加する必要がありますね。

#ちなみに、記事のサンプルは表示のみであるため、
#ビューステートを使用せず、かつ、ポストバックは
#発生しないのでIsPostBackの判断も省いています
girityon
会議室デビュー日: 2004/03/22
投稿数: 10
投稿日時: 2004-03-22 15:10
適切なスレッドがありましたので、追加質問させて下さい。

[ASP.NET]DataGridコントロールのヘッダーを複数行にするには? は
大変参考にさせて頂きました。
上記を応用して下記の様なDataGridを作成しようと思ったのですが、1行にCELLを複数追加する方法がわかりませんでした。
[      大項目1        ] [      大項目2       ]
[小項目1][小項目2][小項目3] [小項目1][小項目2][小項目3]
解説には
「上で示したサンプル・プログラムの画面では、ヘッダーに追加する行に含まれるセルはこのセル1つだけだ。」
とありましたので、複数行も方法があると考えて良いのでしょうか?
宜しくお願い致します。

masas
常連さん
会議室デビュー日: 2002/05/23
投稿数: 25
投稿日時: 2004-03-22 15:45
引用:

1行にCELLを複数追加する方法がわかりませんでした。


row.Cells.Addでcellを必要数だけ追加すればよいのでは?。
girityon
会議室デビュー日: 2004/03/22
投稿数: 10
投稿日時: 2004-03-22 16:25
例えば
Dim cell As TableCell= New TableCell
Dim row As DataGridItem= New DataGridItem(-1, -1, ListItemType.Header)

cell.ColumnSpan = 3
cell.Text = "新着記事"

row.Cells.Add(cell)
row.Cells.Add(cell)

DG一覧.Controls(0).Controls.AddAt(1, row)

の様に記述すると
[      新着記事        ] [      新着記事       ]
[小項目1][小項目2][小項目3] [小項目1][小項目2][小項目3]
となるということでしょうか?上記で試して見ましたが出来ませんでした。
row.Cells.Addの部分を詳しく教えて頂けませんでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-22 16:51
引用:

girityonさんの書き込み (2004-03-22 16:25) より:

となるということでしょうか?上記で試して見ましたが出来ませんでした。
row.Cells.Addの部分を詳しく教えて頂けませんでしょうか?


 どのようになったか、教えていただけますか?ヘッダ2行目を6列作れば、いけるように思うのですが...?
girityon
会議室デビュー日: 2004/03/22
投稿数: 10
投稿日時: 2004-03-22 17:13
説明不足で申し訳ありません。
2行目はDatagridの列名を単純に表示しているだけです。

前レスの実行結果ですが、下記の様になりました。
[      新着記事        ]
[小項目1][小項目2][小項目3] [小項目1][小項目2][小項目3]

小項目欄は列名の為表示されますが、大項目を横に2個並べる方法がわかりません。

「ヘッダ2行目を6列作れば」とありますが、1行目を2列作れれば良いのですが。

今回最終的に下記の様なヘッダーにしたいと思っています。
[ 1 ][    2    ][    3    ]
    ---------------------------
[ 1' ][ 4 ][ 5 ][ 6 ][ 7 ][ 8 ][ 9 ]
*1と1'は最終的に結合
上記をDatagridで実現出来ますでしょうか?

girityon
会議室デビュー日: 2004/03/22
投稿数: 10
投稿日時: 2004-03-22 18:08
row.Cells.Add(cell) で出来ました。
row.Cells.Add(cell) を3つ書いてみたところ2個のみ表示されました。
1個が表示されていなかった理由は、2列目のセルを可視に設定していなかった為
表示されなかった様です。
これから、ヘッダー列の結合に挑戦します。
アドバイスありがとうございました。

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