0

尝试将 GUI 中活动 UI 构建中的数据保存回电子表格。但无法弄清楚如何从 UI 中的文本框中检索字符串值。这就是我想要做的:

function saveChanges() {  
  var Text;
  var Location;
  var app = UiApp.getActiveApplication();

  Text = app.getElementById('CompanyLegalNameTextBox').getText();
  Location = "C3";
  SpreadsheetApp.getActiveSheet().getRange('Location').setValue('Text');  
}

出现错误:TypeError:在对象 Generic 中找不到函数 getText。

非常感谢您提前提供的帮助!

4

2 回答 2

1

getElementById您关心的具体细节是返回GenericWidget不支持任何获取操作的事实。

另一个令人困惑的方面是 Id 和 Name。回调函数中的参数是使用 name 传入的,并getElementById使用 Id(顾名思义)。为简单起见,我通常将我的小部件的名称和 ID 同时设置为同一事物。然后,您可以通过将小部件添加到回调中来传递对小部件的引用addCallbackElement

   ///snippet
   var textBox = app.createTextBox()
                   .setId('CompanyLegalNameTextBox')
                   .setName('CompanyLegalNameTextBox');

  app.add(textBox);
  var handler = app.createServerHandler('saveChanges');
  handler.addCallbackElement(textBox);
  button.addClickHandler(handler); //button defined elsewhere

你的回调代码看起来像这样 - 注意“e”参数

  function saveChanges(e) {  
    var textValue = e.parameter.CompanyLegalNameTextBox;
    ///snippet 
  }
于 2012-11-20T16:54:24.137 回答
0

这在UI App 文档中有详细的解释,请在询问之前阅读。

于 2012-11-20T13:09:23.337 回答