2015-04-01 44 views
0

我有一個關於Google Apps腳本的問題。我想創建一個基本的窗體,其中包含一個文本框,單選按鈕,列表框和文件上載。我的問題在這裏,我想改變單選框的值取決於單選按鈕的選擇。Google Apps腳本示例 - 如何更改單選按鈕的列表框相關值的值

例如:

//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"); 

如果我選擇valRadio1,然後列表框將加載的ITEM1值,且如果我選擇valRadio2,然後列表框將加載的ITEM2值。那麼你能向我解釋我的問題的解決方案嗎?你能給我一個小例子來解決我的問題嗎? D.非常感謝您能幫助我:D。

注:我仍在使用UI服務,所以請用這種方式向我解釋:D。

回答

0

我會建議在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; 
} 

欲瞭解更多信息,可以參考depreciated documentation of UiApp.

+0

哇它的工作原理:d,感謝前... 大家推薦我使用HTMLService但我的,我有一個最後期限,我已經在使用了UiApp我工作,所以我沒有時間學習HTMLService .. 但非常感謝你,也許我會嘗試使用HTMLService:D .. – 2015-04-03 03:40:20

相關問題