2013-06-05 2 views
0

я быть_наст календарь на моей странице JSF, что я хочу, чтобы получить его значение, когда она изменилась, я судимым добавить слушатель, но не работал я нашел другие решения, но не работали с primefaces 3.5:Как получить значение в календаре ориентиров в управляемом компоненте?

<p:calendar id="popupButtonCal22" value="#{zp01ManagedBean.datedeplanification}" showOn="button" locale="fr" > 
<p:ajax listener="#{zp01ManagedBean.setDatedeplanification(zp01ManagedBean.datedeplanification)}"/> 
       </p:calendar> 

вы знаете, как устранить эту проблему?

я использую primefaces 3.5

ответ

0

Не нужно устанавливать значение вручную с помощью AJAX слушателя, как сеттер неявно вызывается, когда значение поля передается. Все, что вам нужно сделать, это отправить значение на изменение. Так что попробуйте это:

<p:calendar id="popupButtonCal22" value="#{zp01ManagedBean.datedeplanification}" showOn="button" locale="fr" > 
    <p:ajax process="popupButtonCal22" partialSubmit="true" event="change"/> 
</p:calendar> 

Если вы дополнительно хотели бы вызвать действие после того, как значение изменилось вы можете добавить listener="#{someBean.someAction" к p:ajax в тег.

И если вы хотите сделать некоторые проверки со старым и новым значением, используйте valueChangeListener -трибут p:calendar -tag.

+0

У меня все еще есть такая же проблема, я получаю null от «датированного перевода» в управляемом компоненте. Я хочу просто получить значение даты, но все еще имеет значение Null. – marouanoviche

+0

В каком методе управляемого компонента и когда? – user1983983

0

Попробуйте поместить компонент p:calendar в тег h:form. Я не понимаю, почему ваш код не будет работать на самом деле, вы даже не нужен Аякс для этого ...

+0

мой p: календарь уже в h: form – marouanoviche

+0

Отправьте код для вашего компонента, я подозреваю, что с ним что-то не так. – Akheloes

0

Попробуйте это, Может быть, это может помочь:

<h:body> 
    <h:form> 
     <p:calendar id="dateObj" value="#{test.date1}" showOn="button" pattern="dd-MMMM-yyyy"> 
      <p:ajax event="dateSelect" listener="#{test.handleDateSelect}"/> 
     </p:calendar> 
    </h:form> 
</h:body> 

Бин как то :

private Date date1; 
public Date getDate1() { 
    return date1; 
} 

public void setDate1(Date date1) { 
    this.date1 = date1; 
} 


public void handleDateSelect(DateSelectEvent event){ 

    System.out.println(event.getDate()); 
} 
+0

Когда вы выбираете дату с помощью '' ее всегда событие dateSelect и обработчик в фоновом режиме Bean получает дату, как только вы выберете дату. Попробуйте это. Если это вам нужно. – NDeveloper

+0

DateSelectEvent не существует в сетях 3.5 :( – marouanoviche

+0

https://code.google.com/p/primefaces/wiki/MigrationGuide в соответствии с этим использованием SelectEvent. – NDeveloper

5
  • <p:ajax partialSubmit="true"/>
    работы с inputText.

  • <p:ajax event="dateSelect"/>
    работает с календарем, когда выбрана дата.

  • <p:ajax event="change"/>
    работает с календарем, когда набирается дата.

0
<p:calendar ...> 
    <p:ajax event="dateSelect" ... /> 
    <p:ajax event="change" ... /> 
</p:calendar> 

Это работает для меня.

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