如何在谷歌应用程序脚本中创建一个下拉菜单,以便下一个下拉菜单只显示关于第一个的特定条目。就像我在第一个下拉列表中选择印度作为国家,然后在第二个只有印度州列表被填充。
问问题
126 次
1 回答
0
你在想这样的事情吗?
代码很简单,在list1触发的一个handler函数中将item添加到list 2
数据在二维数组中定义。这是这个小演示应用程序的完整代码。
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;
}
于 2013-06-25T16:14:59.380 回答