是否可以使用选项文本和值加载 AppMaker DropDown?
Is it possible to load AppMaker DropDowns with an Option Text and and Value?
我已经能够通过执行此类操作在 AppMaker DropDown 上设置选项:
google.script.run
.withSuccessHandler(function(oA){app.pages.Notes.descendants.Dropdown1.options=oA;})
.getSelectOptions();//oA is just an array
但我想知道如何在选项和值中加载不同的值,就像我们在 javascript 中那样:
function updateSelect(vA){
var select = document.getElementById("sel1");
select.options.length = 0;
for(var i=0;i<vA.length;i++)
{
select.options[i] = new Option(vA[i].option,vA[i].value);
}
}
我通过尝试获取 dom 元素来进行尝试,如下所示:
var elem=app.pages.myPage.descendants.myDropDown.getElement();
elem.options.length=0;//always gives me an error because options doesn't seem to exist in that object.
所以现在我一直在 AppMaker Html 小部件中使用标准 HTML dom 元素,只要您的 select 开启,它就可以正常工作第一页。如果它不在第一页上,我发现 onChange 事件无法在不可见的页面上加载小部件。有趣的是,您可以更改 HTML 小部件的内容,即使它们位于其他不可见的页面上。
无论如何,简单的问题是如何在 AppMaker DropDown 小部件中将一个东西加载到值中,将另一个东西加载到选项文本中?
<option value="value">text</option>
如果您有预定义的选项和值数组,您可以对下拉列表的 onAttach 事件执行以下操作:
var options = ['one thing','two thing','three thing'];
var names = ['another one thing','another two thing','another three thing'];
widget.options = options;
widget.names = names;
在这种情况下,记录的值将是选项数组,但显示的项目将来自名称数组。希望这能让你走上正确的道路。
我已经能够通过执行此类操作在 AppMaker DropDown 上设置选项:
google.script.run
.withSuccessHandler(function(oA){app.pages.Notes.descendants.Dropdown1.options=oA;})
.getSelectOptions();//oA is just an array
但我想知道如何在选项和值中加载不同的值,就像我们在 javascript 中那样:
function updateSelect(vA){
var select = document.getElementById("sel1");
select.options.length = 0;
for(var i=0;i<vA.length;i++)
{
select.options[i] = new Option(vA[i].option,vA[i].value);
}
}
我通过尝试获取 dom 元素来进行尝试,如下所示:
var elem=app.pages.myPage.descendants.myDropDown.getElement();
elem.options.length=0;//always gives me an error because options doesn't seem to exist in that object.
所以现在我一直在 AppMaker Html 小部件中使用标准 HTML dom 元素,只要您的 select 开启,它就可以正常工作第一页。如果它不在第一页上,我发现 onChange 事件无法在不可见的页面上加载小部件。有趣的是,您可以更改 HTML 小部件的内容,即使它们位于其他不可见的页面上。
无论如何,简单的问题是如何在 AppMaker DropDown 小部件中将一个东西加载到值中,将另一个东西加载到选项文本中?
<option value="value">text</option>
如果您有预定义的选项和值数组,您可以对下拉列表的 onAttach 事件执行以下操作:
var options = ['one thing','two thing','three thing'];
var names = ['another one thing','another two thing','another three thing'];
widget.options = options;
widget.names = names;
在这种情况下,记录的值将是选项数组,但显示的项目将来自名称数组。希望这能让你走上正确的道路。