AppMaker-导航到表格的最后一页

时间:2018-09-24 13:55:30

标签: google-app-maker

场景: 我有一个计算得出的SQL,它返回100个结果。 添加了一个表(来自此计算的SQL),并将页面大小限制为25个结果。 这将生成4页。 分页器表单AppMaker运作良好(在页面之间导航),但是我需要一个直接从页面1导航到页面4的按钮。 这可能吗? 有人对此有解决方案吗?

致谢

3 个答案:

答案 0 :(得分:2)

如果您需要知道表中有多少个条目(在您的情况下,该条目似乎固定为100,但可能会增长),您仍然可以执行所需操作:

例如说您在YOURPAGE上的表取决于名为Customers的数据源。

  1. 创建一个名为CustomerCount的新数据项,只有一个名为Count(整数)的字段。

  2. 其数据源将是一个sql查询脚本:

Select count(CustomerName) as Count from Customers

  1. 在表格所在的页面上,添加一个自定义属性(例如 Count类型为整数)

  2. 在页面附加事件中,使用以下自定义操作异步设置属性:

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();