2013-04-11 9 views
3

В моем проекте я использую JSF 2.0 и Primefaces 3.5.JSF/Primefaces selectBooleanCheckbox компонент в dataTable всегда не отмечен

На одной странице у меня есть p:dataTable, а в таблицах один столбец selectBooleanCheckbox. Я пробовал как p:selectBooleanCheckbox, так и h:selectBooleanCheckbox. Мой код вроде как следовать:

<h:panelGrid columns="3"> 
      <p:selectBooleanCheckbox id="id" value="false" /> 
      <p:selectBooleanCheckbox id="id" value="true" /> 
      <p:dataTable id="tbl" value="#{bean.items}" var="item" paginator="false"> 
       <p:column> 
        <h:outputText value="#{item.value}" /> 
       </p:column> 
       <p:column> 
        <h:outputText value="#{item.value}" /> 
       </p:column> 
       <p:column style="white-space:normal; text-align: center;"> 
        <p:selectBooleanCheckbox id="id" value="#{item.checked}" /> 
        <p:selectBooleanCheckbox id="id" value="true" /> 
        <p:selectBooleanCheckbox id="id" value="false" /> 
        <h:selectBooleanCheckbox id="id" value="true" /> 
        <h:selectBooleanCheckbox id="id" value="false" /> 
       </p:column> 
      </p:dataTable> 
     </h:panelGrid> 

И результат:

primefaces jsf selectBooleanCheckbox

Я хочу, чтобы показать правильный случай selectBooleanCheckbox. Какие-либо предложения?

+1

Несмотря на то, что ответ Navand отвечает вашим потребностям, я не понимаю, почему вы не привязали значение 'selectBooleanCheckbox' к атрибуту вашего' # {item} 'var. –

+0

Я нашел свою ошибку. В приведенном выше коде (пример фрагмента) я использовал 'value =" # {item.checked} ", но в моем реальном коде я использовал' value = "item.checked" '. Теперь я использую 'value =" # {item.checked} "и работает. – OguzOzkeroglu

ответ

1

кажется, Вы не должны быть ссылки флажок любое значение в вашем бэк-боба. Попытайтесь сохранить значение в своем бэкбоне и отобразите его в своем флажке. Например,

Резервного Bean:

private Boolean value1 = true; 
private Boolean value2 = false; 

//appropriate getters and setters for the above values 

страница JSF Фрагмент:

<p:selectBooleanCheckbox value="#{backingbean.value1}" itemLabel="Value 1"/> 
<p:selectBooleanCheckbox value="#{backingbean.value2}" itemLabel="Value 2"/> 

Это должно привести к первому флажка проверяется (потому что value1 = истина), а второй не должен быть value2 = false. Таким образом, всякий раз, когда вы нажимаете флажок, это значение также будет отражено в значении 1 и значении2 соответственно.

Надежда, что помогает ...

Кроме того, @navand прав, говоря, чтобы использовать # {} истинный и # {FALSE}, если вы хотите, чтобы вручную установить флажок, которые необходимо проверить или нет.

4

Вы должны использовать #{true} или #{false} вместо true или false
так:

<p:selectBooleanCheckbox id="id" value="#{true}" /> 
+0

Я работаю, когда использую это: '' вне dataTable? – OguzOzkeroglu

+0

Но он работает, спасибо .. – OguzOzkeroglu

+0

Извините, я не знаю точно, почему, если бы я нашел его, скажите вам. – navand

Смежные вопросы