【问题标题】:In Google App Maker, how do you cause a Multi Select Widget to select all options by default?在 Google App Maker 中,如何让 Multi Select Widget 默认选择所有选项?
【发布时间】:2020-09-10 23:36:22
【问题描述】:

背景

Google 应用制作工具有一个多选小部件,允许用户从列表中选择多个选项。

当前状态

默认情况下,所有选项都未选中,用户必须手动选择所有需要的选项。

理想状态

我想以编程方式选择所有选项,以便用户可以手动取消选择所有不需要的选项。

我的尝试

应用制作者文档:

Multi Select Widget documentation 提供有关如何绑定选项和值的信息,但不提供用于预先选择这些选项的选项。

Javascript onAttach 事件和 onDataLoad 事件:

我尝试运行 Javascript 以编程方式选择选项,但我认为这是我要撤消的地方。

我的多选小部件中的选项绑定到@datasources.Suppliers.items..Supplier_Name,并且所有选项都正确显示在小部件中。

我可以成功地硬编码以编程方式选择的选项,例如:

var optionsToBeProgramaticallySelected = ["Option1", "Option2", "Option3"];
widget.values = optionsToBeProgramaticallySelected;

...但是,我不想对要选择的值进行硬编码,因为这些值会随着时间而改变。因此,我尝试以编程方式创建一个包含所有选项的数组,并使用 that 作为以编程方式选择的选项列表。但是,我无法成功返回数组以供使用。我曾经尝试过的代码是:

var listOfAllPossibleOptions = app.datasources.Suppliers.items.concat();
widget.values = listOfAllPossibleOptions;

问题

如何使我的多选小部件选择所有选项?

【问题讨论】:

  • var listOfAllPossibleOptions = app.datasources.Suppliers.items.concat();似乎它正在创建数组的字符串连接。如果您只使用 var listOfAllPossibleOptions = app.datasources.Suppliers.items 会发生什么?或者交替地制作那个串联列表,然后 .split() 它。

标签: javascript google-app-maker


【解决方案1】:

也许尝试查询 Suppliers 数据源(在服务器端),将结果放入数组中。

您的客户端功能(多选小部件作为参数传递):

function querySuppliers(MultiSelectWidget){
    google.script.run
      .withFailureHandler(function() {
      alert("Unable to query suppliers");
  })
    .withSuccessHandler(function(result) {//this is the return value from server side
      MultiSelectWidget.values = result;
       })
     .querySuppliers();
} 

你的服务器端函数:

function querySuppliers(){
  var suppliersDS = app.models.Suppliers.newQuery();//new query to datasource
  var suppliers = suppliersDS.run();//run the query
  var returnArray = [];//array to store suppliers
  for (i=0; i<suppliers.length; i++) {//traverse through suppliers to grab names
    returnArray.push(suppliers[i].Supplier_Name);
  }
  return returnArray;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-10
    • 2019-01-21
    • 1970-01-01
    • 2020-07-26
    • 1970-01-01
    • 2012-12-12
    • 2014-12-22
    • 1970-01-01
    相关资源
    最近更新 更多