- PR -

固定heightページにグリッド

投稿者投稿内容
かんぱち
ベテラン
会議室デビュー日: 2006/06/01
投稿数: 73
投稿日時: 2006-07-22 11:29
こんにちは。

親画面がありましてその中にスクロール可能な一覧を設けたいと思っています。
別画面にする必要があるかどうかも含めてお聞きしたいのですが、
現在このようにしてます。

(親画面)
<tr>
 <td vAlign="top" align="left">
  <div class="scr-body">
   <p>
    <iframe src="OyaSub.jsp" scrolling="no" height="200" width="800"></iframe>
   </p>
  </div>
 </td>
</tr>

(一覧表示部:OyaSub.jsp)
<html>
 <table width="800" cellSpacing="1" cellPadding="2" bgcolor="#999999" border="0">
  <tr>
   <td>&nbsp;</td>
   <td>表題1</td>
   <td>表題2</td>
  </tr>
  .(データ一覧表示処理)
  .

データが多くなっても親画面がスクロールされたくない為、このようなソースにしているのですが、一覧のデータを保持していません。
親画面に表示するようにすると表示されるので、記述ミス等ではないと思います。

フレームワークにstrutsを使っています。
<iframe src=でActionとして呼ぶべきでしょうか?(処理速度であまりしたくないのですが・・)

strutsのAPIを見ても提供されているタグは無いようで・・。
気持ち的には<jsp:include>でできないものかなと思ってるのですが・・。

何かお気付きのかたいましたら、アドバイスよろしくお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-07-22 14:49
iframeはまったく別のリクエストになります。
ですので、親画面が値を参照できる状態であっても、
(リクエストスコープなどに値が格納されている状態)
iframeのページの生成時にその値を参照することは出来ません。

テーブルのスクロールだけを目的とするならサブ画面を用意する必要はまったくありません。
コード:
<!--ヘッダ-->
<table border="1" width="400px">
	<tr>
		<th width="100px">header1</th>
		<th width="100px">header2</th>
		<th width="100px">header3</th>
		<th width="100px">header4</th>
	</tr>
</table>
<div style="width:200px;height:100px;overflow-y:auto">
<!--ボディ-->
<table border="1" width="400px">
	<tr>
		<td width="100px">data5</td>
		<td width="100px">data6</td>
		<td width="100px">data7</td>
		<td width="100px">data8</td>
	</tr>
</table>
</div>


と、こんな感じでスクロール可能ですよ。
かんぱち
ベテラン
会議室デビュー日: 2006/06/01
投稿数: 73
投稿日時: 2006-07-22 17:24
あ、ありがとうございます!

これでフレームが違う事でややこしいデータのscript受け渡しなど
きれ〜いに無くなりました!

何とお礼を言って良いやら・・、ありがとうございまする〜。
かんぱち
ベテラン
会議室デビュー日: 2006/06/01
投稿数: 73
投稿日時: 2006-07-25 09:53
問題解決しました!と思ったのですが・・。

表題部と一覧部の幅指定についてですが、下記ソースはtableが分かれていますね
(スクロール部を指定する為なので当然ですが・・)。
この場合別tableと言う事で枠がずれてしまうのですが、何かいい方法はないでしょうか?

IE6での検証なのですが、一覧部の全ての行にwidth指定してもデータ文字・文字数
によってIE側が勝手に微調整してしまいます。
固定行などできればいいのですが・・。

何か良い方法があれば、アドバイスお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-07-25 10:00
ヘッダとボディの列の幅を同一にすることと、
ずれないように、調整するしか・・・
というくらいしか言いようがないですね・・・
セルに入る値を想定してレイアウトするのがいいのではと思います。
(スタイルシートの達人の登場を待ちましょう。。。)

サンプルのdivのstyleが間違ってました。width:200pxじゃなくてwidth:400pxですね。
失礼しました。
かんぱち
ベテラン
会議室デビュー日: 2006/06/01
投稿数: 73
投稿日時: 2006-07-25 11:30
かつのり様様

こちらの方法を教えていただいただけでも大変助かっています。

スタイルシートでwidth,heightがちがちに指定しているのですが、
表示文字でどうしてもずれてしまうんですよね〜。

ん〜・・。。達人さんお願いします。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2006-07-25 12:31
参考までに生成されたHTMLの該当部分を見せていただけませんか?
KOX
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 142
投稿日時: 2006-07-25 13:48
達人ではないですが・・・
1.widthの調整については、幅の一番大きいものを使用して
  調整する必要があります。
  (全角の場合「亜」半角の場合「W」)
2.英数字は自動改行されないので、
  必要であれば、適当な文字数を決めて折り返します。

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