- PR -

DataGridでFooterを複数行表示させたい

1
投稿者投稿内容
kozutsumi
会議室デビュー日: 2003/03/11
投稿数: 8
投稿日時: 2003-03-11 15:48
VBでwebフォームを作成しています。

DataGridで、Footerに合計行を表示させているのですが、
合計行の下に平均行も表示させたい場合、どうすればよいでしょうか。
DataGridでFooterを複数行表示させることは可能でしょうか?
ご存知の方はお教えください。

下記にコーディングサンプルを記述します

--------------------------------------------------------------
Public Class WF_HKTOTAL
Inherits System.Web.UI.Page
Protected WithEvents dgHYOKA As System.Web.UI.WebControls.DataGrid
Private myTotal As System.Double

--------------------------------------------------------------
Private Sub dgHYOKA_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgHYOKA.ItemDataBound
Select Case e.Item.ItemType
Case ListItemType.AlternatingItem, ListItemType.Item
'明細
myTotal += CDbl(e.Item.Cells(1).Text)
Case ListItemType.Footer
' フッター
e.Item.Cells(0).Text = "合計"
e.Item.Cells(1).Text = myTotal
End Select

End Sub
--------------------------------------------------------------
べーちゃん
大ベテラン
会議室デビュー日: 2002/07/21
投稿数: 121
投稿日時: 2003-03-11 16:13
検証していませんのではっきりとしたことはいえないのですが、
一つ目のコントロールの幅が広くて、二つ目のコントロールが
一行に収まらない時には自動的に改行が入り、二つ目のコントロールが
2行目に表示されると記憶しています。
コントロールの幅を100%としてみたら、考えておられる動作に
ならないでしょうか。
kozutsumi
会議室デビュー日: 2003/03/11
投稿数: 8
投稿日時: 2003-03-11 17:40
ご返答有難うございます。

この方法は、DataGridのCellの中で改行させるということでしょうか?

また、コントロールの幅を100%とするというのは、
HTMLで下記のように記述するということでしょうか?
<asp:datagrid ・・・ Width="100%"></asp:datagrid>
または
<FooterStyle ・・・ Width="100%"></FooterStyle>

今回実現したい結果は下記イメージになります。
-------------------------------
[ヘッダー] 点数
-------------------------------
[明細1] 2
[明細2] 4
[明細3] 5
-------------------------------
[合 計] 11
-------------------------------
[平 均] 3.6
-------------------------------


べーちゃん
大ベテラン
会議室デビュー日: 2002/07/21
投稿数: 121
投稿日時: 2003-03-12 03:17
>この方法は、DataGridのCellの中で改行させるということでしょうか?

そうです。

>また、コントロールの幅を100%とするというのは、
>HTMLで下記のように記述するということでしょうか?

直接、HTMLに記述してもかまわないですし、FOOTERに配置している
コントロールのWidthプロパティに"100%"と入力してやってもいい
はずです。

完全に2行に分割するわけではないのでご希望通りの結果になるかは
保障しませんが、見た範囲では問題ないように思えます。
但し、この方法では合計と平均の間にグリッド線は引かれません。

kozutsumi
会議室デビュー日: 2003/03/11
投稿数: 8
投稿日時: 2003-03-12 09:25
ご返答有難うございます。

お教えいただいたように、DataGridのCellの中で改行させるという方法で
実現することが出来ました。

Widthプロパティを100%にするという方法ではありませんが、
CellsのTextに、合計点と平均点を改行記号で連結した値をセットするという方法で、
footerに複数行表示することが出来ました。

footerにGrid行を追加することばかり考えて行き詰まっていたため、
本当に助かりました。

今後ともご教授のほどをよろしくお願いいたします。
1

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