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

わんくま同盟

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

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


(過去ログ 17 を表示中)
■6905 / )  Re[3]: GridViewで列の幅を変わらないようにする
□投稿者/ mあ (43回)-(2007/08/27(Mon) 00:05:44)
No6884 (ぽぴ王子 さん) に返信

> GridView は HTML の table として出力されますから、そのテーブルに対して
> スタイルシートの table-layout を指定してあげると幅が一定になると思います。
> ただし、この場合一行目の幅に固定される(一行目の幅をキチンと設定しておく
> 必要がある)のと、高さも固定になることに注意が必要です。
>
> 参考資料
> http://www.htmq.com/style/table-layout.shtml

高さは伸張してくれますね。
<table border style="table-layout:fixed;">
<colgroup>
<col width="50px" />
<col width="150px" />
<col width="50px" />
</colgroup>
<tr>
<th>No</th>
<th>Name</th>
<th>Zip</th>
</tr>
<tr>
<td>1</td>
<td>あいうえお</td>
<td>213</td>
</tr>
<tr>
<td>1</td>
<td>あいうえおかき</td>
<td>213</td>
</tr>
<tr>
<td>1</td>
<td>あいうえおかきくけ</td>
<td>213</td>
</tr>
<tr>
<td>1</td>
<td>あいうえおかきくけこ</td>
<td>213</td>
</tr>
<tr height="26px">
<td>1</td>
<td>あいうえおかきくけこ</td>
<td>213</td>
</tr>
</table>

各行の高さも設定出来るなら、規定のフォントサイズで固定幅で何文字入るのか見当付けといて
あふれたらまずい(改行されても全部表示したい)行だけは、高さを指定しない、ようにしたら
いいかな。
GridView の制限で、指定した高さを任意に取っ払うことが出来ないなら、テーブルの閉じタグ
直下にスクリプト突っ込んで溢れそうなカラムを持つ行の高さだけ指定をキャンセルさせる、
くらいしか思いつきませんね。

<table border style="table-layout:fixed;" id=TBL1>
<colgroup>
<col width="50px" />
<col width="150px" />
<col width="50px" />
</colgroup>
<tr>
<th>No</th>
<th>Name</th>
<th>Zip</th>
</tr>
<tr height="26px">
<td>1</td>
<td>あいうえおかきくけこ</td>
<td>213</td>
</tr>
</table>
<script>
(function(){
var t = document.getElementById("TBL1");
t.rows(1).style.height = "";
t.rows(1).height = "";
})(); //() とっぱらうとheight="26" が適用、() 付けると height="26" をキャンセル
</script>

こーすれば、全体を表示する必要がある行の規定の高さをキャンセルさせることができます。
表示される行が多いと書き換えが見えてしまう可能性があるので、その見た目の工夫は別途
必要になるかもしれませんね。

返信 編集キー/


管理者用

- Child Tree -