如何在谷歌应用程序脚本中创建一个下拉列表,以便下一次下拉列表中只显示有关第一个下拉列表的特定条目。就像我在第一个下拉列表中选择印度作为国家/地区然后在第二个仅印度州列表中填充
答案 0 :(得分:0)
代码非常简单,只需在list1
触发的处理函数中将项添加到列表2即可数据在2D数组中定义。这是这个小型演示应用程序的完整代码。
var subItems = [['subCategory 1 of 1','subCategory 2 of 1','subCategory 3 of 1','subCategory 4 of 1'],['subCategory 1 of 2','subCategory 2 of 2','subCategory 3 of 2','subCategory 4 of 2'],
['subCategory 1 of 3','subCategory 2 of 3','subCategory 3 of 3']];
function doGet() {
var app = UiApp.createApplication().setTitle('test listBox');
var panel = app.createHorizontalPanel().setStyleAttribute('padding','40px');
var sHdlr = app.createServerHandler('updatelist').addCallbackElement(panel);
var items = ['category 1','category 2','category 3'];
var list1 = app.createListBox().setName('list1').setId('list1').addChangeHandler(sHdlr);
var list2 = app.createListBox().setName('list2').setId('list2').addItem(' . . . . . . . . .').setStyleAttribute('marginLeft','40px');
for(var i =0;i<items.length;++i){list1.addItem(items[i],i)}
panel.add(list1).add(list2);
app.add(panel);
return app;
}
function updatelist(e){
var app = UiApp.getActiveApplication();
var orig = e.parameter.source;
if(orig=='list1'){
var listVal = Number(e.parameter[orig]);
var list2 = app.getElementById('list2').clear();
for(var i =0;i<subItems[listVal].length;++i){
list2.addItem(subItems[listVal][i],i);
}
}else{
//do something else
}
return app;
}