1

我想要一个在数据表中上下行之间移动的代码,带有两个按钮,最后一行转到下一页。

我可以编写一个在行之间移动的代码,但我不能转到最后一行的下一页。我的代码在这里,它有两个用于在行之间向上和向下的函数(tableWidgetVar 是 datatable widgetvar):

    downRow = function (tableWidgetVar) {
        if (PF(tableWidgetVar).selection.length === 0) {
             PF(tableWidgetVar).selectRow(0);
             return;
        }
        var index = PF(tableWidgetVar).originRowIndex;
        var rows = PF(tableWidgetVar).tbody[0].childElementCount;
        index++;

        PF(tableWidgetVar).unselectAllRows();
        PF(tableWidgetVar).selectRow(index);
        PF(tableWidgetVar).originRowIndex = index;
    },

    upRow = function (tableWidgetVar) {
        var rows = PF(tableWidgetVar).tbody[0].childElementCount;
        var index = PF(tableWidgetVar).originRowIndex;
            index--;
        PF(tableWidgetVar).unselectAllRows();
        PF(tableWidgetVar).selectRow(index);
        PF(tableWidgetVar).originRowIndex = index;
    },

有人知道转到最后一行的下一个数据表页面吗?

4

2 回答 2

2

利用:

PF(tableWidgetVar).getPaginator().next();

分页器的来源见https://github.com/primefaces/primefaces/blob/master/src/main/resources/META-INF/resources/primefaces/paginator/paginator.js

也可以看看:

于 2019-06-09T08:43:23.853 回答
0

你需要两个条件,如果你在第一行或者你在页面的最后一行,当你在最后一行时转到下一页,当你在第一行时转到上一页。为此你必须使用PF(tableWidgetVar).paginator。但是当您在第一页或最后一页时,您还有两个附加条件,因为您没有下一页或上一页。像这样编辑您的代码:

downRow = function (tableWidgetVar) {
    if (PF(tableWidgetVar).selection.length === 0) {
         PF(tableWidgetVar).selectRow(0);
         return;
    }
    var index = PF(tableWidgetVar).originRowIndex;
    var rows = PF(tableWidgetVar).tbody[0].childElementCount;
    index++;
    if (index === rows) {
        if (PF(tableWidgetVar).paginator.getCurrentPage() === PF(tableWidgetVar).paginator.cfg.pageCount - 1) {
            return;
        }else {
            PF(tableWidgetVar).getPaginator().next();
            \\or PF(tableWidgetVar).paginator.setPage(PF(tableWidgetVar).paginator.getCurrentPage() + 1);
            index = 0;
        }
    }
    PF(tableWidgetVar).unselectAllRows();
    PF(tableWidgetVar).selectRow(index);
    PF(tableWidgetVar).originRowIndex = index;
},

upRow = function (tableWidgetVar) {

    var rows = PF(tableWidgetVar).tbody[0].childElementCount;
    var index = PF(tableWidgetVar).originRowIndex;
    if (index === 0) {
        if(PF(tableWidgetVar).paginator.getCurrentPage()=== 0){
            return;
        }else {
            PF(tableWidgetVar).paginator.setPage(PF(tableWidgetVar).paginator.getCurrentPage() - 1);
                index = rows - 1;
        }
    } else {
        index--;
    }
    PF(tableWidgetVar).unselectAllRows();
    PF(tableWidgetVar).selectRow(index);
    PF(tableWidgetVar).originRowIndex = index;
},
于 2019-06-09T11:05:26.087 回答