P:对话框不显示在tabview的选项卡中
p:dialog not showing in tabs on tabview
我在JSF2 Primefaces 5.2中遇到了一个奇怪的问题。这可以使用下面的代码轻松地复制。
我正在使用p:命令按钮的onclick创建一个选项卡内的对话框(在tabview内)。第一个标签,它工作得很好。动态添加新选项卡后(使用p:tabView的value属性),对话框在第二个选项卡上也能正常工作。
但是,如果我再次点击第一个选项卡并点击命令按钮,整个页面就会变暗,我无法点击屏幕上的任何地方。
任何想法?谢谢你。
<p:panel header="materials Pages" id="materialsPagesPanel">
<p:commandButton value="+ Add material Page" id="addmaterialPage"
action="#{guideBean.addmaterialPage}" ajax="true" process="@this" update="createGuideForm"/>
<p:tabView value="#{guideBean.materialComboList}" var="materialCombo" orientation="left" id="materialsTabs" activeIndex="#{guideBean.materialActiveTab}">
<p:tab title="material Page #{materialCombo.pageNumber}">
<div class="materialPageHeading"><h:outputText value="material Page #{materialCombo.pageNumber}"/></div>
<p:commandButton id="pickmaterialsButton" type="button" onclick="PF('dlg').show();" value="Pick materials" process="@this"/>
<p:dialog header="Search for materials" widgetVar="dlg" modal="true" width="900" height="600" resizable="false">
Testing
<br />
<p:commandButton value="Select" process="@this"
action="#{guideBean.savematerialsFromPickList(materialCombo.pageNumber)}"
oncomplete="PF('dlg').hide()">
</p:commandButton>
</p:dialog>
</p:tab>
</p:tabView>
</p:panel>
支持bean中动态添加制表符的代码:
public String addmaterialPage()
{
MaterialCombo materialCombo = new MaterialCombo();
//materialComboList is a class variable
materialComboList.add(materialCombo);
return "";
}
问题是widgetVar
属性创建了一个全局范围的javascript变量,所以你必须以这样的方式修改你的页面代码:
<p:panel header="materials Pages" id="materialsPagesPanel">
<p:commandButton value="+ Add material Page" id="addmaterialPage"
action="#{guideBean.addmaterialPage}" ajax="true" process="@this" update="createGuideForm"/>
<p:tabView value="#{guideBean.materialComboList}" var="materialCombo" orientation="left" id="materialsTabs" activeIndex="#{guideBean.materialActiveTab}">
<p:tab title="material Page #{materialCombo.pageNumber}">
<div class="materialPageHeading"><h:outputText value="material Page #{materialCombo.pageNumber}"/></div>
<p:commandButton id="pickmaterialsButton" type="button" onclick="PF('dlg#{materialCombo.pageNumber}').show();" value="Pick materials" process="@this"/>
<p:dialog header="Search for materials" widgetVar="dlg#{materialCombo.pageNumber}" modal="true" width="900" height="600" resizable="false">
Testing
<br />
<p:commandButton value="Select" process="@this"
action="#{guideBean.savematerialsFromPickList(materialCombo.pageNumber)}"
oncomplete="PF('dlg#{materialCombo.pageNumber}').hide()">
</p:commandButton>
</p:dialog>
</p:tab>
</p:tabView>
</p:panel>
相关文章:
- 我的单元测试选项是什么
- 如何更改bigquery API中的计费层选项
- 使用Javascript获取所选选项ID
- Selectize.js:如何对整数值的选项进行排序
- 通过js在新选项卡中有条件地打开url
- 按照选项卡索引的顺序循环一个jQuery选择
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 无法在Ionic select中预先选择最后一个选项
- 如何在选项卡上定义属性'的主窗口对象
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 使用此选项选择父类内部的类
- CKeditor:更改对话框中的默认选择选项
- JQuery覆盖不更改单选选项
- 活动选项卡's源代码-获取变量s值
- 绑定时将Parsley minlength消息作为选项传递时,未对其进行自定义
- 如何从选择框中的选项中获取属性值
- 如何在从多选下拉列表中选择选项值时动态生成文本框
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 将选项卡添加到TabView
- P:对话框不显示在tabview的选项卡中