3

私はGoogleのAppsScriptの世界に不慣れであり、エンドユーザーがデータ(Googleスプレッドシートに保存されている)をクエリし、フォーマットされた/ユーザーフレンドリーな方法でデータを表示するための基本的なUIを作成しようとしています。

Apps Scriptを学びながら、シンプルなものから始めてコンポーネントを追加したいので、テキストボックスにテキストを入力できる基本的なフォームを作成し、その値をラベルに割り当てることにしました(シンプルだと思いました)。基本的なフォームコンポーネントの作成、および値の取得/割り当ての演習)。

残念ながら、私が遭遇した障害は、getText()またはTextBox.getValue()関数がないことです。私はこれを回避する方法を見つけるためにオンラインフォーラム/グーグルなどを検索しようとしましたが、私が試したものは何もうまくいかないようです(以前の検索は私がイベントハンドラーでこれを試して解決することにつながりました)。

私の質問はこれです。textBox('textBox1')とボタン('button1')とラベル('label1')がある場合。button1をクリックしたときにtextBox1に入力した値をlabel1に割り当てるようにWebアプリを取得するにはどうすればよいですか?

これはおそらく最も基本的な質問であり、以前に質問されたことがあることはわかっています。しかし、これらの古い投稿をどれほど掘り下げても、簡単なコードを理解することはできないようです。 。

前もって感謝します。

4

1 に答える 1

2

次のようなコードがあるとします。

var textbox = app.createTextBox().setName("textboxName");
var buttonHandler = app.createServerHandler("updateLabelText").addCallbackElement(textbox);
var button = app.createButton("Click me").addClickHandler(buttonHandler);
var label = app.createLabel().setId("label");

次に、あなたの関数で:

function updateLabelText(e) {
  var app = UiApp.getActiveApplication();
  app.getElementById("label").setText(e.parameter.textboxName);
  return app;
}

したがって、注意すべき点は次のとおりです。

  1. ボタンハンドラーには、コード内の別の場所で定義する関数の名前が付けられます。
  2. ボタンハンドラーにも「コールバック要素」を指定する必要があります。これは、関数でその要素の値を読み取りたい場合に必要です。パネルをコールバック要素として追加すると、そのパネルにあるものはすべてコールバックに追加されます。
  3. コールバック要素の値は、を介して返されe.parameterます。プロパティ名は要素の名前です。例:e.parameter.textboxName
  4. ラベルには、他の関数から参照できるようにIDが必要です。
于 2013-02-11T16:26:18.927 に答える