JSF页面对话框中按钮的固定位置

时间:2019-05-03 10:11:36

标签: css jsf primefaces dialog

我正在使用PrimeFaces对话框。我在那里只有几个要素。一个dataTable和2个按钮(确定和取消)。 但是按钮显示在底部,并且仅当我向下滚动整个表格时才可见。无论我位于第一行还是最后一行,我都希望它们始终显示在底部。 我搜索了很多,但没有找到任何有效的方法。 这是我的代码段:

<f:facet name="{SelectPrijemca}">
                            <div class="Fs14 Absolute" style="right: 11px; top: 4px">
                                <p:outputLabel value="#{MAService.selectedPrijemca.nazO}" style="color:white"/>
                                <p:spacer width="7px"/>
                                <p:commandButton value="Príjemca" id="selectPrijemcaButton" icon="fa fa-user" rendered="#{MAService.managerAccess}"
                                                 onclick="PF('PrijemcaDialogWidget').show();" style="margin-top:2px">
                                </p:commandButton>
                            </div>
                            <p:dialog id="PrijemcaDialog" header="Vybrať príjemcu" widgetVar="PrijemcaDialogWidget" showEffect="fade" hideEffect="fade" height="600" width="1300" position="center" modal="false" resizable="false" >
                                <h:form id="prijemcaForm">
                                        <p:dataTable 
                                            id="prijemcaTable" 
                                            scrollable="false"
                                            var="prijemca"
                                            widgetVar="prijemcaTableWidget" 
                                            value="#{MAService.prijemcoviaList}"
                                            selectionMode="single" 
                                            filteredValue="#{MAService.filteredPrijemcovia}"
                                            emptyMessage="#{messages.localizeEShop('webclient$datatable.tableEmpty')}"
                                            selection="#{MAService.selectedPrijemca}"
                                            rowKey="#{prijemca.id}" >

                                            <p:column width="50"
                                                filterBy="#{prijemca.nazO}" filterMatchMode="contains"
                                                filterStyleClass="narrowEdit"
                                                headerText="#{messages.localizeEShop('webclient$subfiles.lo.LOObjWeb.cols.PrijNaz')}"
                                                sortBy="#{prijemca.nazO}" styleClass="TexAlLeft"
                                                style="white-space: nowrap !important;>
                                                <h:outputText value="#{prijemca.nazO}" styleClass="TexAlLeft" style="color: gray"/>
                                            </p:column>
                                            <p:column width="5"
                                                filterBy="#{prijemca.ici}" filterMatchMode="contains"
                                                filterStyleClass="narrowEdit"
                                                headerText="#{messages.localizeEShop('webclient$subfiles.lo.LOObjWeb.cols.PrijIci')}"
                                                sortBy="#{prijemca.ici}" styleClass="TexAlLeft"
                                                style="white-space: nowrap !important;>
                                                <h:outputText value="#{prijemca.ici}" styleClass="TexAlLeft" style="color: gray"/>
                                            </p:column>
                                        </p:dataTable>
                                    <p:panelGrid columns="2">
                                        <p:commandButton value="OK" icon="fa fa-check" process="prijemcaForm" actionListener="#{MAService.changePrijemca()}" update="contentForm"/>
                                        <p:commandButton value="Zrušiť" icon="fa fa-times" onclick="PF('PrijemcaDialogWidget').hide()" style="background-color:red"/>
                                    </p:panelGrid>
                                </h:form>
                            </p:dialog> 

                        </f:facet>    

仅需注意一点,我无法使dataTable可滚动,因为我在另一个dataTable的paginatorTemplate中使用了这个方面,并且以某种方式使该表所在的所有页面均可滚动。

当我将panelGrid包装在按钮所在的位置时,我找到了一个局部解决方案:

<div style="position: fixed; width: 65%; top: 70%; left: 16%></div>     

但这并不能解决对话框中的按钮,而是整页上的按钮。因此,当有办法使对话框不可移动(可拖动)时,我可以采用这种方式。

1 个答案:

答案 0 :(得分:1)

尝试将数据表放入outputPanel并使用

设置样式
<p:outputPanel id="opScrl" style="height:560px;overflow:auto">
  <p:dataTable ...>
  </p:dataTable>
</p:outputPanel>