- PR -

DataGridのセルの幅を均等にしたい

1
投稿者投稿内容
damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-05-20 11:06
DataGridの各セルの幅(Width)ですが、プロパティビルダでカラムの幅を
指定しているのですが、カラムにデータがある場合とない場合では、セル
の幅を均等に指定しているにも関わらず、均等でなくなってしまいます。
プログラムから下記の様にセル幅を指定しても解決出来ませんでした。
なにか良い方法はありませんか?
よきアドバイスをお願いします。
e.Item.Cells(1).Width.Pixel(46)
e.Item.Cells(2).Width.Pixel(46)
e.Item.Cells(3).Width.Pixel(46)
e.Item.Cells(4).Width.Pixel(46)

↓現状は、セルにデータがないとセル幅が不均等となる
 セルが空白の時は「×」などの文字は挿入したくありません。
--------------------------
| | | ○ | ○ |
--------------------------

↓セルにデータがなくてもセル幅を均等にしたい!!
---------------------------
|   |   | ○ | ○ |
---------------------------


[ メッセージ編集済み 編集者: damepg 編集日時 2003-05-20 11:07 ]
未記入
ベテラン
会議室デビュー日: 2002/09/10
投稿数: 68
投稿日時: 2003-05-20 14:11
ASP.NETで、ですか?

ちょっと試して見たのですが、
僕のところではプロパティビルダから指定しても問題ないようです。
プロパティビルダからだと、width指定はヘッダ行にされるので
値の有りナシは関係ないような気がします。

HTMLなので、 ○にあたる文字列が大きすぎたり、
幅の指定が小さすぎると均一にはなりなせんが...。
いし
常連さん
会議室デビュー日: 2003/04/15
投稿数: 27
投稿日時: 2003-05-20 15:38
おそらくブラウザ側の問題だと思いますが、セルが空白の時に「 」などを入れるのはダメなのでしょうか?
Mr.タナカ
ベテラン
会議室デビュー日: 2003/03/15
投稿数: 64
投稿日時: 2003-05-20 17:18
こんにちは。
スレッド見ました。

とりあえずHTMLで幅を指定する方法があります。
試してみましたが、多分(?)同じ幅だと思います。
もしかすると文字の関係で微妙に幅が違っているかもしれませんが、私はこの方法でやってます。

DataGridのItemDataBoundのイベントです。

Dim a As Long

'幅の指定
For a = 0 To e.Item.Cells.Count - 1
e.Item.Cells(a).Wrap = False
e.Item.Cells(a).Attributes("width") = "100px"
Next

damepg
大ベテラン
会議室デビュー日: 2003/03/19
投稿数: 229
お住まい・勤務地: 東京都内
投稿日時: 2003-05-20 17:37
ありがとうございました。
DataGridのセルの幅を等間隔に表示でき、解決できました。

修正前) e.Item.Cells(1).Width.Pixel(46)
修正後) 下記のソース

なぜ、修正前のソースだとセル幅は等間隔にならないのでしょうか?

引用:

Mr.タナカさんの書き込み (2003-05-20 17:18) より:
こんにちは。
スレッド見ました。

とりあえずHTMLで幅を指定する方法があります。
試してみましたが、多分(?)同じ幅だと思います。
もしかすると文字の関係で微妙に幅が違っているかもしれませんが、私はこの方法でやってます。

DataGridのItemDataBoundのイベントです。

Dim a As Long

'幅の指定
For a = 0 To e.Item.Cells.Count - 1
e.Item.Cells(a).Wrap = False
e.Item.Cells(a).Attributes("width") = "100px"
Next



Mr.タナカ
ベテラン
会議室デビュー日: 2003/03/15
投稿数: 64
投稿日時: 2003-05-20 18:47
こんにちは。
スレッド見ました。

なぜ「e.Item.Cells(1).Width.Pixel(46)」だと正しく表示されないかと言った事ですが、個人的には、よく分かりません。
ただ、上記の方法でプログラミングしてもHTMLには反映されないんですね。
表示したブラウザのソースを表示したら、幅の指定の記述が全くありませんでした。
したがって「Attributes」を使って属性を追加した場合は、HTMLにハッキリ表示される事が分かります。

これでは答えにならないですね。m(__)m
1

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