我有一個需要一些電子表格數據(檢索速度慢)的UiApp表單。我想要實現的是像往常一樣加載視圖,並在顯示後執行一些操作,例如調用服務器處理程序來獲取數據並在完成後更新視圖。那可能嗎?加載UiApp後調用函數(Javascript onLoad等效)
我環顧四周,但沒有找到任何東西。
據this,「功能的doGet(E)是GWT等價的onLoad的」,但它不是我的情況,我想dispay頁面,才做緩慢的部分...
我有一個需要一些電子表格數據(檢索速度慢)的UiApp表單。我想要實現的是像往常一樣加載視圖,並在顯示後執行一些操作,例如調用服務器處理程序來獲取數據並在完成後更新視圖。那可能嗎?加載UiApp後調用函數(Javascript onLoad等效)
我環顧四周,但沒有找到任何東西。
據this,「功能的doGet(E)是GWT等價的onLoad的」,但它不是我的情況,我想dispay頁面,才做緩慢的部分...
Stumbled on this然後我們可以使用它來實現一個pseudo-onLoad事件。
複選框上的setValue
函數有an optional parameter來觸發valueChanged處理函數。因此,您可以通過編程方式觸發valueChanged處理函數,該函數允許您在處理程序同時被調用時返回應用程序(最初加載它)。
function doGet() {
var app = UiApp.createApplication();
var label = app.createLabel('Loading the data from the spreadsheet.')
.setId('statusLabel')
app.add(label);
var handler = app.createServerHandler('loadData');
var chk = app.createCheckBox('test').addValueChangeHandler(handler).setVisible(false).setValue(true,true).setId('chk');
app.add(chk);
return app;
}
function loadData(e) {
var app = UiApp.getActiveApplication();
Utilities.sleep(3000); //placeholder for some function that takes a long time.
var label = app.getElementById('statusLabel');
label.setText("Loaded the data from the spreadsheet");
return app;
}
其他幾個小部件有setValue(value, fireEvents)
方法,例如。 TextBox
,PasswordTextBox
等等。看起來好像沒有什麼獨特的關於CheckBox
部件在實現這種技術。
這真是一個好;-)也許你可以加一點關於[複選框的軟觸發能力]的解釋(https://developers.google.com/apps-script/class_checkbox?hl=en# setValue)你使用的是 – 2013-02-09 19:37:13
聰明的解決方法,像魅力一樣工作。謝謝! – 2013-02-09 20:33:52