- - PR -
ASP.NETでのListBoxの2列表示について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-02-10 19:54
いつも大変参考にさせて頂いております。
ASP.NET(VB)で開発を行っております。そこでListBoxについてどうしても実現方法が分からない事があります。 お分かりになられる方が居ればどうかお教え願います。 ○リストボックスを2列表示するにはどうすればよいのでしょうか? ↓このような使い方をしております。 方法 lstUser.DataSource = DataSet.Tables("ユーザマスタ").DefaultView lstUser.DataValueField = "ユーザコード" lstUser.DataTextField = "ユーザメイ" lstUser.DataBind() これだと「ユーザメイ」しかリストボックスに表示されません。 「ユーザメイ」と「ユーザメイカナ」を表示したいのです。 lstUser.DataSource = DataSet.Tables("ユーザマスタ").DefaultView lstUser.DataValueField = "ユーザコード" lstUser.DataBind() lstUser.DataTextField = "ユーザメイ;ユーザーメイカナ" としてもユーザメイしか表示されません。 ↓のソースも試しました。 方法 With DataSet.Tables("ユーザーマスタ") For i = 0 To .Rows.Count - 1 str = CStr(.Rows(i).Item("ユーザーメイ")) & " " str = str & CStr(.Rows(i).Item("ユーザメイカナ")) lstUser.Items.Add(New ListItem(str,CStr(.Rows(i).Item("ユーザコード"))) Next i End With としても、間の" "(空白)が画面表示時にはなくなっており、詰めて表示されていまします。 ・の方法でもで空白がちゃんと表示される方法でもかまわないので、どなたかどうかご教授お願い致します。m(_ _)m 以上です。 | ||||||||
|
投稿日時: 2005-02-10 20:42
ListBoxを使う限り無理。HTMLの<SELECT>タグのリストボックスには、そもそも複数列を表示する機能なんてありませんから・・・。
DataGridなどほかのコントロールを使いましょう。 | ||||||||
|
投稿日時: 2005-02-10 21:18
ユーザ名とコードを連結して列を作る、とかはダメ?
間の空白が、なくなってはいないでしょう。1つだけになっている、ではないですか? それで、そういうことを言うあなたは、HTMLの勉強をしましょう。 _________________ | ||||||||
|
投稿日時: 2005-02-10 21:28
結構難しい問題です
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8981&forum=7&start=0 方法に対応したカスタムコントロールを自作するとか。 | ||||||||
|
投稿日時: 2005-02-10 22:42
一つの解決策。かなり強引な方法ですが、一応動きました。 サーバ側で書けないならクライアント側で書き換えてしまえという発想。 自分で見てもスマートな方法とは思えないんですが…(^^;
| ||||||||
|
投稿日時: 2005-02-14 09:30
甕星 様
Jitta 様 todo 様 ぼのぼの 様 返答してた頂きありがとうございました。m(_ _)m ほのぼの様、ご提示して頂いた方法で試してみます。ご親切に恐れ入ります。 ありがとうございます。 | ||||||||
|
投稿日時: 2005-02-14 13:27
>ほのぼの様、ご提示して頂いた方法で試してみます。
自分で提示しといてなんですが、単に見た目上揃えたいだけなら、全角スペースを使った方が楽ですよ?(^^; あくまで、どうしても を使いたいならこんな方法もあります、ってことです。 ところで、todoさんの示された(私も上で引用しました)リンク先に、こんな記述がありますが…
これって、正しいんでしょうか?私としては、 ってまさにこうゆう用途のためにあるのだと思いますし、全角スペースもしっかりと文字コードが割り当てられた(Unicodeだと0x3000)、立派な文字だと思うんですけど… | ||||||||
|
投稿日時: 2005-02-14 21:34
問題の本質とか、弊害とか、副作用とか、そういうことも考えています?JavaScriptでやると、クライアントがScriptをOFFにしていたら、実行されませんよ?
テーブルに持ってくる時点で SELECT ..., "ユーザメイ" || ' ' || "ユーザカナ" ... # Oracleの場合 とか、DataTableに1つ余分に列を作っておいて、それのExpressionプロパティに "[ユーザメイ] + ' ' + [ユーザカナ]" とか、サーバ側で処理する方が安全かつ確実です。 ぼのぼのさん> > 全角スペースもしっかりと文字コードが割り当てられた それは“空白”ですから、1個の0x20にならないとダメ、ってことでしょう。たぶん。改行コード、タブコード、空白コードが複数続く場合、1個の空白に置き換わるのが仕様です。 >> (英語圏)開発者の配慮不足を起因として、 >> たまたまそのよう(全角サイズの空白)に表示されてしまっているだけ _________________ |