スプレッドシートデータを必要とするUiAppフォームがあります(取得に時間がかかります)。私が達成したいのは、通常どおりビューをロードし、表示された後、データを取得し、完了時にビューを更新するサーバーハンドラーを呼び出すようなことを行います。それは可能ですか?
周りを見回しましたが、何も見つかりませんでした。
これによると、「関数doGet(e)はGWTでonLoadに相当します」が、私の場合はそうではありません。ページを支払い、遅い部分だけを実行したいからです...
スプレッドシートデータを必要とするUiAppフォームがあります(取得に時間がかかります)。私が達成したいのは、通常どおりビューをロードし、表示された後、データを取得し、完了時にビューを更新するサーバーハンドラーを呼び出すようなことを行います。それは可能ですか?
周りを見回しましたが、何も見つかりませんでした。
これによると、「関数doGet(e)はGWTでonLoadに相当します」が、私の場合はそうではありません。ページを支払い、遅い部分だけを実行したいからです...
これに遭遇し、疑似onLoadイベントを実装するために使用できました。
チェックボックスのsetValue
関数には、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