- PR -

ASP.NET datagrid内のLABELにて日本語表示で・・・

1
投稿者投稿内容
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2004-04-06 10:55
いつもお世話になっております

datagrid内 の LABELにて、日本語を表示させると
縦書に表示されてしまいます。
プロパティをいじってはみたものの、頑固として縦!!
なぜ?????
TEXTBOXだと横書に表示されるのですが、READONLYにしても
枠が空き、「入力エリアですよ」と錯覚させるし
困りはてています

申し訳ありません ご教授願います。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-04-06 11:27
 その「縦書き」とは、

|こ|
|の|
|様|



それとも、

|こ     |
|の     |
|様     |




上の方だと、おそらく、他の列の幅の関係で、その幅しか取れなくなった、などだと思います。テーブル全体の幅が広がれば、横書きになると思います。
masas
常連さん
会議室デビュー日: 2002/05/23
投稿数: 25
投稿日時: 2004-04-06 11:46
引用:

Jittaさんの書き込み (2004-04-06 11:27) より:
上の方だと、おそらく、他の列の幅の関係で、その幅しか取れなくなった、などだと思います。テーブル全体の幅が広がれば、横書きになると思います。


この場合、Labelを表示しようとしているDataGridのカラム指定で、Wrap="False"を指定すればよいと思います。
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2004-04-06 14:25
jittaさん masasさん ありがとうございます

引用:

Jittaさんの書き込み (2004-04-06 11:27) より:
 その「縦書き」とは、

|こ|
|の|
|様|



まさしく、「この様」でして
長ーーい、備考欄があるため、あまり横幅を
広げられないのですが・・・・・
Wrap="False" を入れてみましたが、横幅に変化はなく
縦幅がシェイプになりました

でも、datagridの仕様なんですよねぇ
textbox を使用するしか、ないかなぁ!!
LABEL用の化粧をするしかないのでしょうか・・・・
他にうまい方法は・・・・・

すみません よろしくお願いします
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-04-06 14:56
引用:

七さんの書き込み (2004-04-06 14:25) より:

まさしく、「この様」でして
長ーーい、備考欄があるため、あまり横幅を
広げられないのですが・・・・・


 DataGridというより、HTMLのTable要素か、IEのレンダリングの仕様でしょう。

 tableタグの、すべての列で幅を指定すると、指定した値を比率として計算をするようです。どれか1つを“フリーホグ”として幅を指定しないようにするとよいかも。

 しかし、その備考欄を長ーーくする必要があるのでしょうか?IEならば、CTRL+マウスホイールなどで文字の大きさを変えられます。また、文字の横幅を正確に取得することは出来ません(基本的にプロポーショナルらしい)。これらのことから、ラップするか、スクロールすることを前提にしなければならない、と思います。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-04-06 14:58
DataGridの列の幅を設定してあげたらどうでしょうか?
「プロパティビルダ」→「書式」→「列」で各列の幅が設定できます。
大ベテラン
会議室デビュー日: 2003/09/16
投稿数: 193
お住まい・勤務地: 千葉県
投稿日時: 2004-04-06 17:29
jittaさん ゆうじゅんさん
ありがとうございます

引用:

ゆうじゅんさんの書き込み (2004-04-06 14:58) より:
DataGridの列の幅を設定してあげたらどうでしょうか?
「プロパティビルダ」→「書式」→「列」で各列の幅が設定できます。



ちなみに テンプレート編集を使用しています

<asp:ButtonColumn Text="削除" ButtonType="PushButton" CommandName="Delete">
<HeaderStyle Width="25px"></HeaderStyle>
</asp:ButtonColumn>
<asp:TemplateColumn HeaderText="伝票番号">
<HeaderStyle Width="30px"></HeaderStyle>
<HeaderTemplate>
<asp:Label id="Label6" runat="server">伝票</asp:Label>
</HeaderTemplate>
<ItemTemplate>
<asp:Label id=GLbl1 runat="server" Width="25px" Text='<%# DataBinder.Eval(Container, "DataItem.伝票番号") %></asp:Label>
</ItemTemplate>
</asp:TemplateColumn>

MSDN online で見た、ItemCreated で
e.Item.Cells(0).Width = New Unit(25)
も使用してみましたが、
列幅の固定が出来なくて困っています

DataGrid のプロパティの Width="660px" と
各列で指定した、Width の合計とが等しくなるように設定しました
何か、他の設定が違っていて、固定できないのかもしれませんが・・・

ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-04-06 18:21
一番長い列の列幅を「指定なし」にしてみてください。
理由はJittaさんの書き込みを参照してみてください。
1

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