Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app maker Google Appmaker:基于所选下拉选项更新表单_Google App Maker - Fatal编程技术网

Google app maker Google Appmaker:基于所选下拉选项更新表单

Google app maker Google Appmaker:基于所选下拉选项更新表单,google-app-maker,Google App Maker,我有一个AppMaker应用程序,它有一个基于一个地址表/数据源的from。我可以使用next/prev按钮获得一个表单,但将键字段(名称)替换为所有名称的下拉列表(用户可以开始键入名称跳到那里,下拉列表显示) 我的希望是,当用户从下拉列表中选择时,整个表单都会更新,下一个/上一个按钮也能正常工作(有太多的记录,只能用下一个/上一个翻页)。如果下一个/上一个功能使事情变得太复杂,我不需要它 目前下拉列表正在运行,但我无法获取下一个/上一个按钮集的索引或表单的其余部分以反映所选的下拉记录 我尝试将

我有一个AppMaker应用程序,它有一个基于一个地址表/数据源的from。我可以使用next/prev按钮获得一个表单,但将键字段(名称)替换为所有名称的下拉列表(用户可以开始键入名称跳到那里,下拉列表显示)

我的希望是,当用户从下拉列表中选择时,整个表单都会更新,下一个/上一个按钮也能正常工作(有太多的记录,只能用下一个/上一个翻页)。如果下一个/上一个功能使事情变得太复杂,我不需要它

目前下拉列表正在运行,但我无法获取下一个/上一个按钮集的索引或表单的其余部分以反映所选的下拉记录

我尝试将“onValueEdit”事件设置为如下内容

var selected = widget.value;
var idx      = widget.options.indexOf(selected);

console.log("Selected: "+selected+", index = "+idx+"\n");
if(idx < 0) {                      //...this error is never hit
  console.log("Index error - setting to zero!\n");
  idx = 0;
}
widget.datasource.loadPage(idx);   //...update form?
var selected=widget.value;
var idx=widget.options.indexOf(选中);
console.log(“Selected:“+Selected+”,index=“+idx+”\n”);
如果(idx<0){//…则不会命中此错误
log(“索引错误-设置为零!\n”);
idx=0;
}
widget.datasource.loadPage(idx);/。。。更新表格?
通过控制台日志记录的两个观察结果:

  • “idx”变量从未可靠地设置为所选的下拉索引,并且 通常为“0”(虽然从未显示错误消息),因此“indexOf()”函数 没有按预期工作

  • “选定”变量(名称)始终正确

  • 如果我用一个固定值(比如5)调用widget.datasource.loadPage(…),它对表单中显示的内容也没有影响(以前加载的数据仍然存在)-显然不是这样做的:v/


    你能将noob引导到正确的方向吗?

    如果你使用默认的App-Maker表单,那么你可以看到所谓的
    寻呼机实际上并不分页。它触发PreviItem/nextItem数据源方法,换句话说,它通过数据源项而不是页面进行导航。以下是App Maker文档中的引用:

    nextItem:选择下一项。对于查询数据源,如果当前项是页面上的最后一项,则会加载下一个页面并选择新加载页面上的第一项

    因此,如果已经加载了所有项目(将数据源的
    查询页面大小设置为0),则只需更改数据源中的选定项目:

    //onValueEdit下拉事件
    //假设表单和下拉列表共享相同的数据源
    widget.datasource.selectKey(newValue.\u键);
    

    如果你真的有很多项目,而且不可能在一次调用中加载所有项目。。。然后它将是另一个故事…

    我删除了此页面并重新开始,并用下拉列表替换了默认的企业名称数据字段,我将下拉列表设置为:

    Options: @datasources.Addresses.items 
    
    Value: @datasources.Addresses.item
    
    它很好用?!不知道我的原始页面发生了什么

    更新: 因此,您似乎需要删除值和选项,然后重新输入它们。当您这样做时,“OK”将亮起

    另外,我最初接触AppMaker的目的是构建UI和附加数据。那是我的第一个错误。您构建数据,然后让App Maker为您构建编辑/添加页面

    更新: 如下图所示设置选项和值非常重要

    然而,我在设置它们时遇到了麻烦(读:浪费了几个小时!),直到我使用绑定选择列表中的更多选项将它们全部清除,然后再次尝试(我甚至尝试了一个全新的应用!)。我被迫做出选择。。然后,OK按钮前的最后一个字段将可用

    不确定AppMaker是否有问题,或者有什么简单的问题我不明白

    我原来问题中的编码都不是必需的。 一旦设置为这种方式,绑定就如您所期望的那样工作!!
    所有其他字段都设置为@datasource.item。并绑定到所选的任何项目。下拉列表也不需要任何事件设置,正如我所想。

    谢谢Pavel。我已将页面大小设置为零。表单和下拉列表是相同的数据。我要试试看!更新:(我有500多条记录)因此newValue没有成员“\u key”,但是.valueOf()返回所选名称的文本。但是,这仍然不会更新表单的其余部分。是否有api调用,或者我必须手动更新每个表单字段?很可能您的下拉列表的
    选项
    属性绑定到某个字段(
    字符串
    类型),但不绑定到记录本身,这就是为什么
    newValue
    参数不是记录类型的原因。请为您的
    选项尝试此绑定。
    @datasources.MyDatasource.items
    刚在一些假期后返回此@Pavel。。。所以我不得不使用“…投影->商业名称”让列表工作。使用您建议的内容只填写下拉列表中的一项,而不是所有记录?!好的,我把它改成了一个查询,它也填充了所有的值。因此,我目前将下拉值设置为“@datasource.query.filters.BusinessName.\u equals”