- PR -

JSFでテーブルのカラムごとに背景色を変える

1
投稿者投稿内容
未記入
会議室デビュー日: 2005/07/29
投稿数: 2
投稿日時: 2005-07-29 13:27
JSFの習得のためカレンダーを表示するプログラムを作成しています。
<h:dataTableを使用して日付をカレンダーのように表示することは出来たのですが
祭日の場合、背景色を帰るなどカラムごとのスタイル指定はどのように行えばよいのでしょうか?よろしくお願いいたします。
よしだひろゆき
大ベテラン
会議室デビュー日: 2004/11/22
投稿数: 141
投稿日時: 2005-07-29 13:51
土曜日曜などカラム位置で固定の背景色ならば,columnClassesにカンマで区切って7つのス
タイルクラスを指定すればできます.

祭日は個別に変更するしかありません.h:columnはスタイルを指定できないので,
その中のh:outputTextなどで条件指定します.

祭日かどうかのフラグは,h:datatableのvarで参照するビーンのプロパティとして提供する
必要があります.例えば var="week"と指定したとすると
<h:outputText value="#{week[0].text}" style="#{week[0].holiday?holiday:normal}"/>
のような感じになるでしょう.
未記入
会議室デビュー日: 2005/07/29
投稿数: 2
投稿日時: 2005-07-29 14:50
吉田さん、ありがとうございます。h:columnでの指定は出来ないのですね。残念です。実は、<h:column style="{week[0].style}"/>とか、<h:column class="{week[0].style}"/>とかいろいろ判らずに試していました。<h:outputTextでのスタイル指定となると、セル全体への背景色指定はできないということですね。かなしい。ありがとうございました。
よしだひろゆき
大ベテラン
会議室デビュー日: 2004/11/22
投稿数: 141
投稿日時: 2005-07-29 15:09
タグリブのJavadocが以下にあるのでご覧になると良いと思います.
http://java.sun.com/j2ee/javaserverfaces/1.1_01/docs/tlddocs/index.html

それと"{week[0].style}"ではなく"#{week[0].style}"ですので念のため.
また,私の好みで言うと,スタイルはJSPページを書く人の方で決めて欲しいので,
データ構造の方は単に祭日か否かを返すプロパティを提供した方が良いのではないかと思います.

なお,ヤフーのjsf-jpグループ http://groups.yahoo.co.jp/group/jsf-jp/
のブリーフケースにTips集をアップロードしてありますのでご利用ください.
けむ
常連さん
会議室デビュー日: 2003/09/26
投稿数: 40
投稿日時: 2005-07-29 18:22
セル全体をdivで囲んでスタイルで背景色を指定すると、たいていのブラウザでそれらしくなります。
コード:

<h:column>
<f:verbatim><div class="holiday"></f:verbatim>

<f:verbatim></div></f:verbatim>
</h:column>

または、

<h:column>
<h:outputText value="<div class='#{week[0].holiday?holiday:normal}'>" escape="false"/>

<h:outputText value="</div>" escape="false"/>
</h:column>


marginやpaddingも調整する必要があるかもしれません。
また、セルの内容が改行されるとおかしなことになるかもしれません。

あまりきれいなコードではありませんが、参考までに。

[ メッセージ編集済み 編集者: けむ 編集日時 2005-07-29 18:22 ]
1

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