Jsf p:dialog不从p:schedule中选择日期
我的日程安排不正常。当我点击一个日期时,它会显示一个带有开始日期和结束日期的弹出窗口。但它不会在弹出窗口中拾取日期。我遵循showcase上的示例,但当弹出窗口出现时,日期字段为空 appointment.xhtmlJsf p:dialog不从p:schedule中选择日期,jsf,primefaces,dialog,Jsf,Primefaces,Dialog,我的日程安排不正常。当我点击一个日期时,它会显示一个带有开始日期和结束日期的弹出窗口。但它不会在弹出窗口中拾取日期。我遵循showcase上的示例,但当弹出窗口出现时,日期字段为空 appointment.xhtml <h:form prependId="false"> <p:schedule id="schedule" value="#{Appointment.eventModel}" widgetVar="mysched
<h:form prependId="false">
<p:schedule id="schedule"
value="#{Appointment.eventModel}"
widgetVar="myschedule"
timeZone="GMT+2">
<p:ajax event="dateSelect"
listener="#{Appointment.onDateSelect}"
oncomplete="PF('eventDialog').show();" />
<p:ajax event="eventSelect"
listener="#{Appointment.onEventSelect}"
update="eventDetails"
oncomplete="PF('eventDialog').show();" />
</p:schedule>
<p:dialog widgetVar="eventDialog"
header="Appointment Details"
showEffect="clip"
hideEffect="clip">
<h:panelGrid id="eventDetails" columns="2">
<p:outputLabel for="title" value="Titles:" />
<p:inputText id="title"
value="#{Appointment.event.title}"
required="true" />
<p:outputLabel for="from" value="From:" />
<p:calendar id="from"
value="#{Appointment.event.startDate}"
timeZone="GMT+2" pattern="dd/MM/yyyy HH:mm" />
<p:outputLabel for="to" value="To:" />
<p:calendar id="to"
value="#{Appointment.event.endDate}"
timeZone="GMT+2" pattern="dd/MM/yyyy HH:mm" />
<p:commandButton type="reset" value="Reset" />
<p:commandButton id="addButton" value="Save"
actionListener="#{Appointment.addEvent}"
oncomplete="PF('myschedule').update();
PF('eventDialog').hide();"/>
</h:panelGrid>
</p:dialog>
</h:form>
所以,如果你不使用对话框,而是使用一个普通的jsf面板,它就可以工作了?我没有尝试过这个。但我的要求是在对话框中进行,我不是说你最终不应该使用对话框,但是如果你这样标记它,你的意思是间接地说它在没有对话框的情况下工作。顺便说一句,您的对话框没有拾取任何内容,其中的组件可以(或不可以)将内容缩小到真正的原因,这就是调试和创建对话框的全部内容。作为提示:检查
p:schedule
中两个ajac标记之间的差异,首先删除prependId='false'
。它应该只在非常非常特殊的情况下使用,像我们这样的普通人永远不会遇到这种情况
public class Appointment implements AppointmentInterface {
public ScheduleModel getEventModel() {
eventModel = new DefaultScheduleModel();
return eventModel;
}
public void onDateSelect(SelectEvent selectEvent) {
event = new DefaultScheduleEvent("", (Date) selectEvent.getObject(), (Date) selectEvent.getObject());
}
public void onEventSelect(SelectEvent selectEvent) {
event = (ScheduleEvent) selectEvent.getObject();
}
public void addEvent(ActionEvent actionEvent) {
if (event.getId() == null) {
eventModel.addEvent(event);
} else {
eventModel.updateEvent(event);
}
event = new DefaultScheduleEvent();
}
}