- PR -

DropDownListにおけるList内の項目整列について

投稿者投稿内容
未記入
会議室デビュー日: 2006/09/08
投稿数: 5
投稿日時: 2006-09-08 16:48
現在、ASP.NETにて開発を行っています。

DropDownListで参照しているSqlDataSourceのSelectCommandを以下のように設定し、
複数項目を同時に表示させています。
しかし、表示行によって文字数が異なる為、がたがたに表示されてしまい、
見にくい状態になっています。

SELECT DISTINCT DB.ID + '-' + DB.商品名 as 表示内容 from DB

IDと商品名の列をきれいに整列させたいのですが、
よい方法はありますでしょうか?
お手数ですが、ご意見を頂ければありがたいです。
MIRU
常連さん
会議室デビュー日: 2006/05/30
投稿数: 21
投稿日時: 2006-09-08 17:25
初めまして。

>SELECT DISTINCT DB.ID + '-' + DB.商品名 as 表示内容 from DB

SELECT DISTINCT RPAD(DB.ID,10) + '-' + RPAD(DB.商品名,10) as 表示内容 from DB

でどうでしょうか?
RPAD関数(文字を左詰めにし、任意文字数の領域をとる)が効けば、
ID・商品名がそれぞれ10文字分の文字領域を採ってくれるはずです。
関数が受け付けなれない場合は、ID・商品名を別々に取得して、
SQLではなくVB側で処理をするしかないと思います。

私はODBCを使ってたため、ほとんどのSQL関数が効かず泣きを見ました・・・・・・


参考 http://www.mitene.or.jp/~rnk/index.htm の関数2
未記入
会議室デビュー日: 2006/09/08
投稿数: 5
投稿日時: 2006-09-08 17:55
初めまして。

早速のご返信ありがとうございます。
SQLServerではRPADは組込み関数名として認識されないようです。

VB側での処理を検討してみようと思います。
ありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-09-08 22:53
表示するときに、固定ピッチ フォントにするのをお忘れなく。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2006-09-08 23:44
NAL-6295です。

こんばんは。

たとえば複数の空白で埋めて整列しようとしても、勿論一桁分しか空白はできません。
だからといって、 で埋めても勝手にエスケープしてくれて、 が文字列として出てきてしまいます。(ASP.NET1.1の話。2.0もですね。)

というわけで、空白ではない何かで整列する必要があります。


#2.0も同じだったので、2.0もですね。という文言を追記。

[ メッセージ編集済み 編集者: NAL-6295 編集日時 2006-09-11 22:59 ]
未記入
会議室デビュー日: 2006/09/08
投稿数: 5
投稿日時: 2006-09-11 10:52
皆さんご返信ありがとうございます。
やはり空白を加えての切り取りでは、多少のズレが生じてしまうようです。

left(DB.ID+space(20),IDの最大文字数)

>表示するときに、固定ピッチフォントにするのをお忘れなく。
上記での問題は、固定ピッチフォントにすることで解決されるのでしょうか?
そうであれば、申し訳ないのですがDropDownListの表示項目を固定ピッチフォントで
表示する方法をお教え願えないでしょうか?
お願い致します。
未記入
会議室デビュー日: 2006/09/08
投稿数: 5
投稿日時: 2006-09-11 11:22
CssClassで固定ピッチフォントに設定してみましたが、改善されませんでした。

font-family: monospace

もう少し検討してみようと思います。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-09-11 11:32
引用:

未記入さんの書き込み (2006-09-11 11:22) より:
CssClassで固定ピッチフォントに設定してみましたが、改善されませんでした。

font-family: monospace

もう少し検討してみようと思います。



IEなどであれば1.5の倍数のフォントサイズにしないと無意味。

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