0

问题1)当一个按钮被点击时,是否可以使用这样的东西(见下面的代码)?

function Submit(e) {
  var app = UiApp.getActiveApplication();
  var checked = app.getElementById("checkbox").getValue();
}

问题2)点击标签时是否可以使用类似的东西(见下面的代码)?

function LabelClick(e) {
  var LabelText = e.parameter.getText();
}

抱歉,这可能很愚蠢,但我找不到任何像样的例子,而且似乎无法从谷歌的文档中解决这个问题,我也刚刚习惯了谷歌脚本。如果您有答案,我将不胜感激。

4

2 回答 2

2

你不是很远......但还不够近,无法让它工作......

Ui 元素的值在添加到处理程序的所谓回调元素中发送到处理程序函数。这个回调元素可能是一个按钮、一个标签,或者更简单地说,是包含所有其他小部件的父小部件。这些“元素”位于处理函数的“e”中,并由它们的名称标识。
在另一个方向上,即如果您需要从另一个函数修改 Ui 元素,那么您可以通过它的 ID ( getElementbyId()) 获取该元素并为其分配一个值,就像您在 UI 定义函数中所做的那样。

我从另一篇文章中复制/粘贴示例代码来说明我所说的内容,您可以看到e.parameter.chkmode包含复选框的值,我将添加一个标签以显示相反的过程(单击按钮时文本会更改) .

希望我足够清楚,

var sh = SpreadsheetApp.getActiveSheet();
var ss = SpreadsheetApp.getActiveSpreadsheet();
//
function move() {
   var app = UiApp.createApplication().setTitle("move test")
       .setHeight(100).setWidth(400).setStyleAttribute("background-color","beige");
   var panel = app.createVerticalPanel();
   var next = app.createButton('next').setWidth('180');
   var chkmode = app.createCheckBox("moving mode (checked = up/dwn, unchecked=L/R)").setValue(false).setName('chkmode');
   var label = app.createLabel("test Label with text that will be modified on click").setId('label');
   panel.add(next).add(chkmode).add(label);
   var handler = app.createServerHandler('click').addCallbackElement(panel);
   next.addClickHandler(handler);
   app.add(panel);
   ss.show(app);
 }
//
function click(e) {
  var app = UiApp.getActiveApplication();
  var activeline = sh.getActiveRange().getRow();// get the row number of the selected cell/range
  var activecol = sh.getActiveRange().getColumn();// get the row number of the selected cell/range
  var label = app.getElementById('label');
  label.setText('You have clicked the button');
  var chkmode=e.parameter.chkmode;
  if(chkmode=="true"){
    activeline++
    }else{
      activecol++}
  var sel=sh.getRange(activeline,activecol);
  sh.setActiveSelection(sel);// make the next row active
  return app;
 }
于 2012-07-11T20:32:50.253 回答
0

对于 UI 和事件教程,我建议:

https://developers.google.com/apps-script/uiapp

于 2012-07-12T08:13:08.820 回答