- PR -

JSFのdataTableの特定行を見つける方法

1
投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2004/01/26
投稿数: 27
投稿日時: 2006-03-08 13:56
JSFで画面に入力された値を、バリデーションクラスで
値の検証を行い、エラーならそのコンポーネントの
styleを変更して、どの項目がエラーなのか明示的に表示させたいのです。
普通のinputTextなどの1つの項目なら、

component.getAttributes().put("styleClass","errorClass");

で色変更が可能なんですが、

dataTable内のinputTextに適応すると、
dataTable内すべての行の色が変わってしまいます。

そこでdataTable内のエラーのinputTextを特定したいと思うのですが
なにか方法はありますでしょうか?

よろしくお願いいたします。
よしだひろゆき
大ベテラン
会議室デビュー日: 2004/11/22
投稿数: 141
投稿日時: 2006-03-09 09:57
dataTableのサブコンポーネントのインスタンスはそれぞれ一つしかなくて
レンダリングなどではこれをループ処理していますから,コンポーネントに直接設定しては
思い通りのことができません.
styleClassなどをバリューバインディングするのが良いと思います.
こんな感じ
コード:
<h:dataTable value="#{xxx.list}" var="item">
 <h:column>
   <h:inputText value="#{item.value}" styleClass="#{item.valid? 'normalClass' : 'errorClass'}"/>
 </h:column>
...
</h:dataTable>


#すみません.今思いつきで書いているので,上記のコード例はあくまでも「こんな感じ」を示したものです.
1

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