我有ap:commandlink,当点击时会打开一个包含p:datatable的对话框,其中包含一个globalFilter。
请注意,commandlink操作doSomething()包含填充表格列表的代码。 br />首先,我单击p:commandlink,它打开包含p:datatable的对话框,我应用一些过滤器,然后关闭对话框。
再次单击commandlink时,对话框出现在中心位置,清除过滤器然后,对话框超出屏幕。
代码: -
<p:commandLink action="#{Bean.doSomething()}" ajax="true" oncomplete="PF('table').clearFilters();PF('dialog').show();" update="dialog" >
<h:outputText value="Add" />
</p:commandLink>
<p:dialog id="dialog" widgetVar="dialog" width="1100" modal="true" >
<p:dataTable id="table" widgetVar="modGrpsList" value="#{Bean.list}" rows="10" filteredValue="#{Bean.filteredList}" >
<f:facet name="header">
<p:inputText id="globalFilter" value="#{Bean.searchTextDialog}" onkeyup="PF('modGrpsList').filter();" />
</f:facet>
// datatable contents
</p:dataTable>
</p:dialog>
我认为我的对话框打开,过滤和更新表的执行顺序是错误的。 任何人都可以指定,我应该如何清除数据表过滤器,更新数据表,然后打开对话框,以便默认情况下,它在屏幕中心打开。
修改: - &#39; Dialog超越了屏幕,我的意思是我的对话框只有一半内容在屏幕上可见,其余的内容都在屏幕下方。我必须将它拖到顶部才能生成整个对话框可见。 我正在使用 primefaces v5.0