var clickhander = app.createServerClickHandler("onbtnclick");
clickhander.addCallbackElement(panel);
btn.addClickHandler(clickhander);この中の「addCallbackElement」というのがポイントです。これは、コールバック関数(つまりServerClickHandlerで設定した、イベントにより呼び出される関数)を呼び出すとき、引数に指定したコンポーネントを追加する働きをします。追加するとどうなるか? それは、コールバック関数でのパラメータ処理部分を見れば分かります。var str = e.parameter.tbox1;onbtnclickでは、このようにパラメータ変数eのparameterから「tbox1」としてTextBoxの値をとり出しています。つまり、addCallbackElementでコンポーネントを追加すると、コールバック関数のparameterにそのコンポーネントの値が追加されるようになるのです。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
function doGet(e){
var app = UiApp.createApplication().setTitle("Sample Page");
var panel = app.createVerticalPanel();
app.add(panel);
var l1 = app.createLabel("This is Sample Page.");
l1.setStyleAttribute("font-size", "18pt");
l1.setStyleAttribute("background-color", "#CCCCFF");
l1.setStyleAttribute("margin", "10px");
panel.add(l1);
var l2 = app.createLabel("label1");
l2.setId("label1");
l2.setText("簡単なテキスト操作を行います。");
panel.add(l2);
var tbox = app.createTextBox();
tbox.setName("tbox1").setId("tbox1");
panel.add(tbox);
var btn = app.createButton("click");
var clickhander = app.createServerClickHandler("onbtnclick");
clickhander.addCallbackElement(panel);
btn.addClickHandler(clickhander);
panel.add(btn);
return app;
}
function onbtnclick(e){
Logger.log(e);
var str = e.parameter.tbox1;
var app = UiApp.getActiveApplication();
var l1 = app.getElementById("label1");
l1.setText("you typed: " + str);
return app;
}
| << 前へ | 次へ >> |