0

使用谷歌 AppScript。如何在组中找到选中的 RadioButton?如果它需要处理程序,则使用服务器一。

非常感谢

4

1 回答 1

1

对此有一个未解决的问题,但也有一个很好的解决方法;-)(由 GAS TC 的 Romain Vialard 发现)

这是他的脚本的一个稍微修改过的版本,适用于在电子表格上运行:

function radiotest() {
  var app = UiApp.createApplication();
  var panel = app.createVerticalPanel();
  var radioValue = app.createTextBox();
     radioValue.setId("radioValue").setName("radioValue");               
  // var radioValue = app.createHidden().setName("radioValue") ;// choose the one you like
  for(var i = 1; i < 10; i++){
    var name = 'choice '+i;
    var handler = app.createClientHandler().forTargets(radioValue).setText(name);
    panel.add(app.createRadioButton('radioButtonGroup',name).addValueChangeHandler(handler));
  }
  panel.add(radioValue);
  var Valide=app.createButton("Valide").setId("val");
  panel.add(Valide)                   
  app.add(panel);
//               
  var handler = app.createServerHandler("valide"); // this is the server handler
  handler.addCallbackElement(radioValue)
  Valide.addClickHandler(handler);
//
    SpreadsheetApp.getActiveSpreadsheet().show(app);// show app 
    }
    //
function valide(e){ ;// This function is called when key "validate" is pressed 
  var sh = SpreadsheetApp.getActiveSheet();
  var RadioButton = e.parameter.radioValue;               
  sh.getRange('A1').setValue(RadioButton);
  var app = UiApp.getActiveApplication();
  return app;
}​

请注意,radioValue 项目可以是文本框或隐藏文本,两种可能性都在脚本中/

于 2012-06-17T18:28:10.850 回答