版本: NetBeans:7.2.1 PrimeFaces:3.5.3 GlassFish:3.1.2 JDK 1.6
我一直在努力寻找相关问题并找到了很接近的主题,但并不是我正在寻找的主题。我正在尝试做一些类似于PrimeFaces ShowCase的p:schedule demo,我想要一个对话框,显示点击事件的详细信息。
我认为问题来自于从支持bean调用listener方法。当我在p:ajax标签中输入listener方法时,NetBeans强制我传入一个参数,如:
listener="#{cmodel.onEventSelect(e)}"
我认为没有必要,因为我没有任何价值可以传递。
我在想:
或
另外,我已经直接将ShowCase中的演示文件复制并粘贴到一个项目中,但它无法正常工作,这让我更倾向于使用NetBeans。 (即出现对话框,但没有关于所选事件的信息)
总结一下;事件按计划本身显示,我不能让对话框显示所选事件的事件详细信息。
非常感谢任何帮助!
查看图层:
<h:form>
<p:schedule id="nelsonsSchedule" value="#{cmodel.scheduleModel}" showHeader="true"
leftHeaderTemplate="none" rightHeaderTemplate="prev, next today"
draggable="false" timeZone="UTC" styleClass="schedule">
<p:ajax event="eventSelect" listener="#{cmodel.onEventSelect}"
update="eventDialog eventDetails" oncomplete="eventDialog.show()"/>
</p:schedule>
<p:dialog id="eventDialog" widgetVar="eventDialog" header="EventDetails">
<p:panel id="eventDetails">
<h:outputLabel value="#{cmodel.selectedEvent.title}" />
</p:panel>
</p:dialog>
</h:form>
支持Bean:
@ManagedBean(name = "cmodel")
@SessionScoped 公共类CalendarModel实现Serializable {
private ScheduleModel scheduleModel;
private List<ScheduleEvent> allScheduledGames;
private DefaultScheduleEvent gameEvent;
public ScheduleEvent selectedEvent;
List<Game> allGames;
@PersistenceContext
private EntityManager em;
public CalendarModel() {
}
@PostConstruct
public void init() {
allScheduledGames = new ArrayList<ScheduleEvent>();
allGames = new ArrayList<Game>();
allGames = em.createNamedQuery("Game.findAll").getResultList();
/*create list of games to put into the ScheduleModel*/
for (int i = 0; i < allGames.size(); i++) {
gameEvent = new DefaultScheduleEvent(allGames.get(i).getOpponent() +
"\n\n\n" + allGames.get(i).getTimeOfGame(),
allGames.get(i).getDateOfGame(),
allGames.get(i).getDateOfGame());
if(allGames.get(i).getHomeAway().equals("away")){
gameEvent.setStyleClass("away");
} else{
gameEvent.setStyleClass("home");
}
gameEvent.setData(allGames.get(i));
allScheduledGames.add(gameEvent);
}/*end for*/
scheduleModel = new DefaultScheduleModel(allScheduledGames);
}/*end init()*/
public void onEventSelect (SelectEvent e) {
selectedEvent = new DefaultScheduleEvent();
selectedEvent = (ScheduleEvent) e.getObject();
}
答案 0 :(得分:0)
如果有人遇到同样的问题 - 那就是NetBeans。我升级到7.3并且不再有问题了。尽管另一个问题出现在itellisense无法识别来自辅助bean的散列图,但这是另一个问题。