var clickhander = app.createServerClickHandler("onbtnclick");この中の「addCallbackElement」というのがポイントです。これは、コールバック関数(つまりServerClickHandlerで設定した、イベントにより呼び出される関数)を呼び出すとき、引数に指定したコンポーネントを追加する働きをします。追加するとどうなるか? それは、コールバック関数でのパラメータ処理部分を見れば分かります。
clickhander.addCallbackElement(panel);
btn.addClickHandler(clickhander);
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; }
<< 前へ | 次へ >> |