0

在我的应用程序中,我有一个<p:dataTable>使用惰性数据模型的分页。

当我从一个页面单击另一个页面按钮时,我有一个要求,应该生成一个确认弹出窗口,如果我单击,yes那么我可以转到另一个页面,如果我单击“否”,那么我不能转到另一个页面,我会留下在该当前页面中。

.xhtml 代码如下:

<h:form id="userListForm">
    <p:dataTable var="user" id="userTable" value="#{userListController.userDataModel}" lazy="true" paginator="true" rows="25" paginatorPosition="bottom"
            paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
            rowsPerPageTemplate="25,50,100" widgetVar="userDataTable" styleClass="userTable" selectionMode="single" >
       <p:ajax event="page" />

       <p:column id="nameColumn" headerText="#{adbBundle['name']}"
           sortBy="#{user.fullName}" filterBy="#{user.fullName}" styleClass="userName">
           <h:outputText value="#{user.fullName}" />
       </p:column>

       <!-- other columns -->

    <:/p:dataTable>
</h:form>

我正在使用 primefaces 3.4,jsf 2.0。

4

2 回答 2

1

从 RongNK 的答案中得到启发,您可以简单地这样做,

添加此脚本块:

<script type="text/javascript">
    function onPageStart() {
        return confirm('Are you sure?');
    }
</script>

并将其放入您的数据表中:

<p:ajax event="page" onstart="return onPageStart()" />

你也可以用<p:ajax这种方式内联它:

<p:ajax event="page" onstart="return confirm('Are you sure?');" />

经过测试和使用 PrimeFaces 3.4.2

于 2013-04-05T06:57:44.420 回答
0

你试过了吗:

<p:ajax event="page" onstart="return tests()"/>

<script type="text/javascript">
                var vpage = 1;
                var prevvalue = vpage;
                function tests(){
                    if(confirm('Are you sure?')){
                        var p = userDataTable.getPaginator();
                        vpage = p.getCurrentPage();
                        prevvalue = vpage;
                        return true;}
                    else {
                        var p = userDataTable.getPaginator();
                        p.setPage(prevvalue,true);
                        return false;}
                }
            </script>
于 2013-04-05T04:37:13.460 回答