如何在 Primefaces 数据表中的行和页之间移动
How move between row and page in Primefaces Datatable
我想要一个代码,它可以通过放置两个按钮在数据表中上下行之间移动,并在最后一行转到下一页。
我可以编写在行之间移动的代码,但我无法转到最后一行的下一页。我的代码在这里,它有两个在行之间上下移动的功能(tableWidgetVar 是数据表 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;
},
是否知道转到最后一行的下一个数据表页面?
使用:
PF(tableWidgetVar).getPaginator().next();
另请参阅:
- How can I get a PrimeFaces widgetVar function list?
你需要两个条件,如果你在页面的第一行或最后一行,当你在最后一行时转到下一页,当你在第一行时转到上一页 page.for这你必须使用 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;
},
我想要一个代码,它可以通过放置两个按钮在数据表中上下行之间移动,并在最后一行转到下一页。
我可以编写在行之间移动的代码,但我无法转到最后一行的下一页。我的代码在这里,它有两个在行之间上下移动的功能(tableWidgetVar 是数据表 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;
},
是否知道转到最后一行的下一个数据表页面?
使用:
PF(tableWidgetVar).getPaginator().next();
另请参阅:
- How can I get a PrimeFaces widgetVar function list?
你需要两个条件,如果你在页面的第一行或最后一行,当你在最后一行时转到下一页,当你在第一行时转到上一页 page.for这你必须使用 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;
},