2012-08-08 52 views
0

我是一名Java開發人員,但我爲使用Google協作平臺的非盈利組織創建了一個小型網站。我有一個表單,我希望有點動態,Google Apps腳本似乎是一個可行的選擇。正如人們在學習新技術時經常發生的那樣,我從教程/文檔中複製並粘貼了以下代碼。然後我發佈了它,並將腳本小部件插入到網站上的一個頁面並保存該頁面。當我重新加載頁面時,小部件的「佔位符」就在那裏,但沒有任何反應 - 沒有按鈕,沒有面板,什麼也沒有。當我從腳本編輯器運行它時,結果相同。我確定我錯過了一些顯而易見的東西,但我一直無法獲得用戶界面進行渲染。一個小方向將不勝感激。 在此先感謝!谷歌應用腳​​本 - 網絡應用似乎沒有做任何事情。 。

function doGet(e) { 
    Logger.log("Executing the doGet() method . . ."); 

    var app = UiApp.createApplication(); 
    var aPanelRoot = app.createVerticalPanel(); 

    var button = app.createButton('Click Me'); 
    aPanelRoot.add(button); 

    var label = app.createLabel('The button was clicked.'); 
    label.setId('statusLabel'); 
    aPanelRoot.add(label); 

    var handler = app.createServerHandler('myClickHandler'); 
    handler.addCallbackElement(label); 
    button.addClickHandler(handler); 

    aPanelRoot.setVisible(true); 
    return app; 
} 

function myClickHandler(e) { 
    var app = UiApp.getActiveApplication(); 

    var label = app.getElementById('statusLabel'); 
    label.setVisible(true); 

    //app.close(); 
    return app; 
} 

回答

2

看來你只是忘了在doGet()函數添加aPanelRoot到應用程序

app.add(aPanelRoot) 

也:默認情況下,所有的部件都是有形項目,這樣你就可以刪除所有的setVisible(true)陳述,因爲它們只必要的,如果你將其設置爲false別的地方...

如果我可以添加一個最後的評論,它通常是一個好主意,選擇父控件作爲callbackElement所以當你開始擁有很多元素時,你不會冒險忘記添加元素(所有的子元素都會自動包含在父元素中)。

+0

感謝您的幫助,Serge。那(當然)是問題。我在試圖正確部署它的過程中如此緊張,我錯過了顯而易見的事實。理解爲:將對象設置爲可見 - 這是一種無法達到的效果(令人沮喪)。我明白你的觀點:callbackElement - 再次感謝! – dgg 2012-08-09 14:34:14

+0

很高興幫助...可以標記爲回答嗎? – 2012-08-09 14:58:53

相關問題