Google Apps 脚本示例 - 如何根据单选按钮的值更改列表框的值
Google Apps Script Example - How to change value of listbox dependent value of radio button
我有一个关于 Google Apps 脚本的问题。我想创建一个基本表单,其中表单包含文本框、单选按钮、列表框和文件上传。我的问题是,我想根据单选按钮的 selection 更改列表框的值。
例如:
//variable radio button
var valRadio1 = app.createRadioButton("radio", "One").setName("One").setId("One");
var valRadio2 = app.createRadioButton("radio", "Two").setName("Two").setId("Two");
//arrays of listbox
var item1 = ["item1","item2"];
var item2 = ["item3","item4"];
//variable listbox
var listBox = app.createListBox().setId("box").setName("box");
如果我 select valRadio1,则 listBox 将加载 item1 的值,如果我 select valRadio2,则 listBox 将加载 item2 的值。那么你能向我解释一下我的问题的解决方案吗?你能给我一个小例子来解决我的问题吗?非常感谢大家能帮帮我:D.
注意:我还在使用UI服务,所以请用这种方式向我解释:D.
我建议在 UiApp 上使用 HTML 服务,因为它已经贬值了。
但是,以下答案可能对您的查找有所帮助。为此,您必须为每个单选按钮附加点击事件处理程序。
function doGet(e) {
var app = UiApp.createApplication().setTitle('Title');
var panel = app.createVerticalPanel();
var lb = app.createListBox(true)
.setId('lbId')
.setName('lbName')
.setHeight(60)
.setWidth(60);
var valRadio1 = app.createRadioButton("Radio", "one").setName('one').setId('one');
var valRadio2 = app.createRadioButton("Radio", "two").setName('two').setId('two');
var handler1 = app.createServerChangeHandler('one');
handler1.addCallbackElement(panel);
valRadio1.addClickHandler(handler1);
var handler2 = app.createServerChangeHandler('two');
handler2.addCallbackElement(panel);
valRadio2.addClickHandler(handler2);
panel.add(valRadio1);
panel.add(valRadio2);
panel.add(lb);
app.add(panel);
return app;
}
function one(e){
var app = UiApp.getActiveApplication();
app.getElementById('two').setValue(false);
var lb = app.getElementById('lbId');
lb.clear();
var item1 = ["item1","item2"];
for(var i=0;i<item1.length;i++) {
lb.addItem(item1[i]);
}
return app;
}
function two(e){
var app = UiApp.getActiveApplication();
app.getElementById('one').setValue(false);
var lb = app.getElementById('lbId');
lb.clear();
var item2 = ["item3","item4"];
for(var i=0;i<item2.length;i++) {
lb.addItem(item2[i]);
}
return app;
}
我有一个关于 Google Apps 脚本的问题。我想创建一个基本表单,其中表单包含文本框、单选按钮、列表框和文件上传。我的问题是,我想根据单选按钮的 selection 更改列表框的值。
例如:
//variable radio button
var valRadio1 = app.createRadioButton("radio", "One").setName("One").setId("One");
var valRadio2 = app.createRadioButton("radio", "Two").setName("Two").setId("Two");
//arrays of listbox
var item1 = ["item1","item2"];
var item2 = ["item3","item4"];
//variable listbox
var listBox = app.createListBox().setId("box").setName("box");
如果我 select valRadio1,则 listBox 将加载 item1 的值,如果我 select valRadio2,则 listBox 将加载 item2 的值。那么你能向我解释一下我的问题的解决方案吗?你能给我一个小例子来解决我的问题吗?非常感谢大家能帮帮我:D.
注意:我还在使用UI服务,所以请用这种方式向我解释:D.
我建议在 UiApp 上使用 HTML 服务,因为它已经贬值了。
但是,以下答案可能对您的查找有所帮助。为此,您必须为每个单选按钮附加点击事件处理程序。
function doGet(e) {
var app = UiApp.createApplication().setTitle('Title');
var panel = app.createVerticalPanel();
var lb = app.createListBox(true)
.setId('lbId')
.setName('lbName')
.setHeight(60)
.setWidth(60);
var valRadio1 = app.createRadioButton("Radio", "one").setName('one').setId('one');
var valRadio2 = app.createRadioButton("Radio", "two").setName('two').setId('two');
var handler1 = app.createServerChangeHandler('one');
handler1.addCallbackElement(panel);
valRadio1.addClickHandler(handler1);
var handler2 = app.createServerChangeHandler('two');
handler2.addCallbackElement(panel);
valRadio2.addClickHandler(handler2);
panel.add(valRadio1);
panel.add(valRadio2);
panel.add(lb);
app.add(panel);
return app;
}
function one(e){
var app = UiApp.getActiveApplication();
app.getElementById('two').setValue(false);
var lb = app.getElementById('lbId');
lb.clear();
var item1 = ["item1","item2"];
for(var i=0;i<item1.length;i++) {
lb.addItem(item1[i]);
}
return app;
}
function two(e){
var app = UiApp.getActiveApplication();
app.getElementById('one').setValue(false);
var lb = app.getElementById('lbId');
lb.clear();
var item2 = ["item3","item4"];
for(var i=0;i<item2.length;i++) {
lb.addItem(item2[i]);
}
return app;
}