我有一个UiApp表单,需要一些电子表格数据(减慢检索)。我想要实现的是像往常一样加载视图,并在显示之后做一些事情,比如调用获取数据的服务器处理程序并在完成后更新我的视图。这可能吗?
我环顾四周但我没有找到任何东西。
根据this,“函数doGet(e)是onLoad的GWT等价物”,但它不是我的情况,因为我想发布页面而只有做缓慢的部分...
答案 0 :(得分:4)
Stumbled on this来实现伪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;
}
答案 1 :(得分:0)
其他几个小部件有setValue(value, fireEvents)
个方法,例如。 TextBox
,PasswordTextBox
等。CheckBox
小部件在实现此技术时似乎没有任何独特之处。