- PR -

【ASP.NET】DataGridの列に対するCSS設定についてご教授ください。

1
投稿者投稿内容
Nullぽ
会議室デビュー日: 2005/09/27
投稿数: 13
投稿日時: 2005-09-27 12:13
DataGridに対してスタイルシートの設定を行っております。

列を改行せずに全て表示するようにしておりますが、これで
すと最長の文字列をもつ行が見づらくなってしまっています。

そこでスタイルシートにて列のpaddingを設定してみたところ
グリッド自体は見やすくなったのですが他のテーブルへも影響
してしまい全体のデザインが崩れてしまいました。。。

そこでご質問なのですが、DataGridの列(TD)に対してCSSクラス
を適用する方法はありますでしょうか?

スタイルシートの設定により回避できるようであればこちらで
質問すべき問題ではないと思うのですが。
どなたか解決方法をご存知の方ご教授願えますでしょうか?

よろしくお願いします。m(_ _)m



ちなみに各行のCSS設定ソースとCSSファイル内クラス定義
は以下の通りです。

■■■ 行のスタイル設定ソース ■■■

DataGrid.CssClass = "GrdGlobal"
DataGrid.HeaderStyle.CssClass = "GrdHeadderItem"
DataGrid.ItemStyle.CssClass = "GrdNormalItem"
DataGrid.SelectedItemStyle.CssClass = "GrdSelectedItem"
DataGrid.ItemStyle.Wrap = False

■■■ スタイルシートファイル ■■■
TD
{
padding: 2,2,2,2;
}

.GrdGlobal
{
}

.GrdHeadderItem
{
color: black;
background-color: #ffff66;
}

.GrdNormalItem
{
color: black;
background-color: #ffffcc;
}

.GrdSelectedItem
{
color: white;
background-color: #000080;
}
でっち6号
大ベテラン
会議室デビュー日: 2005/01/31
投稿数: 176
お住まい・勤務地: Kawasaki
投稿日時: 2005-09-27 12:25
TD側であれば、DataGrid.Items[m].Cells[n]に対する操作ですね。
この辺が参考になると思います。

参照先ではText要素を操作していますが、CssClassでも同様の操作になります。
ついでにTableCell クラス
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-09-27 12:26
こんにちは。

> DataGridの列(TD)に対してCSSクラス
この部分だけに回答します。

ItemCreatedイベントを使用

コード:
Private Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemCreated
    If ((e.Item.ItemType = ListItemType.AlternatingItem) Or (e.Item.ItemType = ListItemType.Item)) Then
        e.Item.Cells(列番号).CssClass = "Css"
    End If
End Sub



こんな感じだと思います。試してないんで、間違ってらごめんなさい。
一応これで、出力されたHTMLを確認してみてください。
Nullぽ
会議室デビュー日: 2005/09/27
投稿数: 13
投稿日時: 2005-09-27 12:29
でっち6号様、SE卵様
早速のご回答ありがとうございます。

お二人からご教授いただいた方法を早速試してみます。
ありがとうございました。 m(_ _)m
Nullぽ
会議室デビュー日: 2005/09/27
投稿数: 13
投稿日時: 2005-09-27 12:53
解決いたしました。
サンプルソースまでつけていただき
大変ありがとうございました。^^
1

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