从Google Apps脚本中获取TextBox值

时间:2013-02-11 16:17:17

标签: google-apps-script

我是Google Apps脚本的新手,我正在尝试为最终用户创建一个基本用户界面来查询数据(存储在Google电子表格中)并以格式化/用户友好的方式显示数据。

由于我想开始简单并在学习Apps脚本时添加组件我决定创建一个基本表单,允许我在文本框中输入文本,然后将该值分配给标签(我认为会是创建基本表单组件和检索/赋值的简单练习。

不幸的是,我遇到的绊脚石是没有getText()或TextBox.getValue()函数。我尝试通过在线论坛/谷歌等搜索找到解决方法的方法,但我尝试的任何东西似乎都没有用(之前的搜索让我感觉很好并在事件处理程序中解决这个问题)。

我的问题是这个。如果我有一个textBox('textBox1')和一个按钮('button1')和一个标签('label1')。当我点击button1时,如何让我的网络应用程序将我在textBox1中输入的值分配给label1?

我意识到这可能是最基本的问题,而且我知道之前已经被问到了....但无论我多么努力地挖掘这些旧帖子,我似乎无法想象应该是多么简单的一点代码输出。

提前致谢。

1 个答案:

答案 0 :(得分: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,以便您可以从其他功能中引用它。