场景: 我有一个计算得出的SQL,它返回100个结果。 添加了一个表(来自此计算的SQL),并将页面大小限制为25个结果。 这将生成4页。 分页器表单AppMaker运作良好(在页面之间导航),但是我需要一个直接从页面1导航到页面4的按钮。 这可能吗? 有人对此有解决方案吗?
致谢
答案 0 :(得分:2)
如果您需要知道表中有多少个条目(在您的情况下,该条目似乎固定为100,但可能会增长),您仍然可以执行所需操作:
例如说您在YOURPAGE
上的表取决于名为Customers
的数据源。
创建一个名为CustomerCount
的新数据项,只有一个名为Count
(整数)的字段。
其数据源将是一个sql查询脚本:
Select count(CustomerName) as Count from Customers
在表格所在的页面上,添加一个自定义属性(例如
Count
类型为整数)
在页面附加事件中,使用以下自定义操作异步设置属性:
app.datasources.CustomerCount.load(function() {
app.pages.YOURPAGE.properties.Count = app.datasources.CustomerCount.count;
app.datasources.Customers.query.pageIndex = @properties.Count / 25;
app.datasources.Customers.datasource.load();
});
我过去曾成功尝试过类似的事情。
答案 1 :(得分:1)
为此找到了解决方案:
ServerScript:
function CandidateCountRows() {
var query = app.models.candidate.newQuery();
var records = query.run();
console.log("Number of records: " + records.length);
return records.length;
}
在按钮代码中:
var psize = widget.datasource.query.pageSize;
var pidx = widget.datasource.query.pageIndex;
var posicao = psize * pidx;
var nreg = posicao;
google.script.run.withSuccessHandler(function(Xresult) {
nreg = Xresult;
console.log('position: ' + posicao);
console.log('nreg: ' + nreg);
console.log('psize: ' + psize);
console.log('pidx: ' + pidx);
var i;
for (i = pidx; i < (nreg/psize); i++) {
widget.datasource.nextPage();
}
widget.datasource.selectIndex(1);
}).CandidateCountRows();
这将允许导航到最后一页。
答案 2 :(得分:0)
如果您知道查询总是返回100条记录,并且页面大小始终为25条记录,那么最简单的方法是确保您的按钮绑定到相同的数据源并附加以下onClick事件:< / p>
widget.datasource.query.pageIndex = 4;
widget.datasource.load();