PrimeFaces Slider'for'值无法在dataTable中工作

时间:2016-09-12 13:51:38

标签: primefaces datatable slider

大家好我正在尝试创建一个数据表,人们可以为每行设置1到10之间的值:

<p:dataTable id="coteTable" value="#{editEvaluationView.evaluation.listCote}" var="cote">

        <p:column colspan="10">

            <p:inputText id="cote_#{cote.critere.code.trim()}"
                                    value="#{cote.valeur}" />
            <p:slider minValue="1" maxValue="10"
                                    for="cote_#{cote.critere.code.trim()}" />
        </p:column>

        <p:column>
                <p:inputText id="commmentaire" value="#{cote.observations}" />
        </p:column>
</p:dataTable>

但它无法识别ID(cote_CRT001是第一个cote_#{cote.critere.code.trim()}值):

javax.servlet.ServletException: Cannot find component for expression "cote_CRT001" referenced from "formEditEval:coteTable:0:j_idt120".

我真的不知道该怎么办了。有没有人知道它为什么不起作用?

1 个答案:

答案 0 :(得分:1)

dataTable是一个命名容器,因此其中的组件将以dataTable id为前缀。此外,表中(每行)中呈现的每次数据迭代都将生成id s的效果。因此,您无需尝试创建唯一的id。如果您只是使用cote inputText的{​​{1}}。由于表单也是命名容器,因此它将在第一行id生成,第二行formId:coteTable:0:cote生成,等等。在formId:coteTable:1:cote中,您只需使用{{1}因为您在同一命名容器中引用了一个组件。

所以,简单地写一下:

slider

另见