C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: GridViewの列幅固定とあふれた文字の非表示について


(過去ログ 131 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■77601 / inTopicNo.1)  GridViewの列幅固定とあふれた文字の非表示について
  
□投稿者/ daikun (1回)-(2015/11/07(Sat) 12:15:51)

分類:[ASP.NET (VB)] 

ASP.NET(VB)のGridViewについて質問です。

GridViewにデーターベースのデータを表示していますが、その際に列幅を固定して、データのうち列に表示しきれない部分は表示しない(overflow:hidd
en?)よういしたいです。

データベースから取ってくるデータの文字数を制限する方法をやっていますが、全角文字にあわせて文字数制限をすると、半角文字がたくさん入ったデータはセル内の空白が大きくなってしまいます。データは全角半角両方入っています。
そこで、データベースからとってくる文字数制限ではなくて他の方法でやりたいと表います。

GridViewの各列にテキストボックスをいれたフィールドにしたら列幅固定で、あふれた文字は表示しないということは可能になりますか?

現在、GridViewに初めから備わっている行選択ボタンをつかって選択したデータを取得するプログラムを書いています。
GridViewのboudfieldじゃなくてテキストボックスにした場合、この行選択ボタンを使えなくなったりするでしょうか?
引用返信 編集キー/
■77603 / inTopicNo.2)  Re[1]: GridViewの列幅固定とあふれた文字の非表示について
□投稿者/ WebSurfer (697回)-(2015/11/07(Sat) 14:39:55)
No77601 (daikun さん) に返信

サーバー側で起こっていることとクライアント側で起こっていることの区別が
付いているでしょうか?

GridView そのものがブラウザに表示されるわけではなく、サーバー側で ASP.NET
が GridView を html ソースに変換してその結果をブラウザに送信します。

ブラウザが受信して表示するのは GridView の場合、table, tr, th, td 要素で
す。GridView の Template に TextBox を配置すればそれが input 要素になって
table の中に表示されます。

> そこで、データベースからとってくる文字数制限ではなくて他の方法でやりたいと表います。
> GridViewの各列にテキストボックスをいれたフィールドにしたら列幅固定で、あふれた文字
> は表示しないということは可能になりますか?

なので、「他の方法」では ASP.NET とか GridView は関係なくなって、table に CSS
や JavaScript をどのように適用して「列幅固定で、あふれた文字は表示しない」を
実現するかという話になるはずです。

そういう観点で、質問者さんのスキル(特に CSS, JavaScript の知識)を考慮に入
れて、どのように対応できるかを考えてみるといいと思います。

> GridViewのboudfieldじゃなくてテキストボックスにした場合、この行選択ボタンを使えなく
> なったりするでしょうか?

それは問題ないです。よほど変なことをしなければですが。
引用返信 編集キー/
■77614 / inTopicNo.3)  Re[1]: GridViewの列幅固定とあふれた文字の非表示について
□投稿者/ WebSurfer (699回)-(2015/11/08(Sun) 15:03:47)
No77601 (daikun さん) に返信

質問にあった overflow:hidden を使う方向でちょっと考えてみました。

GridView からレンダリングされる td 要素はブロック要素ではないので
それに直接 overflow は適用できません。なので、その中に div 要素を
配置しそれに overflow 他のスタイルを適用した上で div 要素内に文字
列を入れるのがよさそうです。

前のレスで、

> ASP.NET とか GridView は関係なくなって

と書きましたが、上記のようにする場合は ASP.NET のコードを多少いじ
った方が簡単そうです。

問題の列を TemplateField に変換して以下のようにします。(あくまで
例ですので質問者さんのケースに合わせて書き直してください)

<asp:TemplateField HeaderText="description">
<ItemTemplate>
<div style="width:150px; height:1.1em; overflow:hidden;">
<asp:Literal ID="Literal1"
runat="server"
Text='<%# Eval("description") %>'>
</asp:Literal>
</div>
</ItemTemplate>
</asp:TemplateField>

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -