我的页面上有两个PrimeFaces日历控件,在Tabview中。我将一个定义为弹出(默认模式),另一个定义为按钮。
相关的输入字段会出现在页面上,它们有来自my的默认日期,但是日历控件不会出现。我也尝试过mode="inline",但是日历没有显示出来。
<div class="ui-grid ui-grid-responsive">
<div class="ui-grid-row">
<div class="ui-grid-col-3">
<p:panel>
<h:form id="coursesListForm">
<p:dataTable id="coursesList" value="#{manageClasses.courses}" var="course" rowKey="#{course.idAsString}" selectionMode="single" selection="#{manageClasses.selectedCourse}">
<p:ajax event="rowSelect" process="@all" update="@form, tabView" />
<p:column headerText="#{text['name']}">
<h:outputText value="#{course.displayString}" />
</p:column>
</p:dataTable>
</h:form>
</p:panel>
</div>
<div class="ui-grid-col-9">
<p:tabView id="tabView" activeIndex="#{manageClasses.tabIndex}" disabled="#{manageClasses.isTabViewDisabled}">
<p:ajax event="tabChange" listener="#{manageClasses.onTabChange}" />
<p:tab title="#{text['reports']}" id="reportTab">
<h:form id="reportForm">
<p:panelGrid columns="2">
<p:outputLabel for="fromDateCalendar" value="#{text['Reports.from']}" />
<p:calendar id="fromDateCalendar" value="#{reportRequest.fromDate}" showOn="button" />
<p:outputLabel for="toDateCalendar" value="#{text['Reports.to']}" />
<p:calendar id="toDateCalendar" value="#{reportRequest.toDate}" />
</p:panelGrid>
</h:form>
</p:tab>
</p:tabView>
</div>
</div>发布于 2016-01-27 00:59:48
这是由声明jquery.js库的菜单部分中不相关的javascript造成的。当我移除冒犯的导入时,所有奇怪的Primefaces错误都消失了。声明其他jquery库似乎会干扰Primefaces代码。
发布于 2015-09-10 19:21:12
尝试将所有PrimeFace组件放在h:form中--例如,目前您有:
<p:panel>
<h:form id="coursesListForm">
...some content...
</h:form>
</p:panel>虽然它看起来应该与此相当相似:
<h:form id="coursesListForm">
<p:panel>
...some content...
</p:panel>
</h:form>第二个h:form也应该这样做--确保<h:form id="reportForm">包含<p:tabView id="tabView"和所有相关内容。
您可能还需要在更改完成后重新部署,我的JBoss有时“没有注意到”更改,并坚持为原始内容提供服务。
https://stackoverflow.com/questions/32443603
复制相似问题