Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 在小部件上使用标记_Google Apps Script - Fatal编程技术网

Google apps script 在小部件上使用标记

Google apps script 在小部件上使用标记,google-apps-script,Google Apps Script,我试图在UI小部件中使用标记,但标记值在处理程序函数中不可用(返回“null”) 它应该像那样工作(在这种情况下,它对我来说没什么用)还是我做错了什么?如果有人对标签有任何经验,我将非常感谢任何建议;-) 以下是我用于测试的代码: function doGet(e) { var app = UiApp.createApplication(); var panel = app.createVerticalPanel(); var lbl = app.createTextBox().se

我试图在UI小部件中使用标记,但标记值在处理程序函数中不可用(返回“null”)

它应该像那样工作(在这种情况下,它对我来说没什么用)还是我做错了什么?如果有人对标签有任何经验,我将非常感谢任何建议;-)

以下是我用于测试的代码:

function doGet(e) {
  var app = UiApp.createApplication();
  var panel = app.createVerticalPanel();
  var lbl = app.createTextBox().setWidth('400').setId('lbl');
  lbl.setText('empty').setTag('tag value');
  lbl.setText('original value = '+lbl.getTag());// this line to check that setTag / getTag is working as it should in the same function
  app.add(panel.add(lbl));
  var CH = app.createServerHandler('showtag').addCallbackElement(panel);
  lbl.addClickHandler(CH)

  return app;
}


function showtag(){
var app = UiApp.getActiveApplication();
var lbl = app.getElementById('lbl')
lbl.setText('new value = '+lbl.getTag());
return app
}
这是可以测试的

编辑:我在代码中添加了一行,用于读取和写入doGet函数中的标记,只是为了测试

编辑2:Srik的解决方案,简单到:

function showtag(e){
var app = UiApp.getActiveApplication();
var lbl = app.getElementById('lbl')
lbl.setText('from showtag value = '+e.parameter.lbl_tag);
return app
}

嗯。这里有一个小怪癖。在处理程序中,可以通过以下方法访问标记值

function doGet(){
   ....
   var lbl = app.createTextBox().setWidth('400').setId('lbl');
   lbl.setText('empty').setTag('tag value');
   ....
}

function showtag(e){
  var tag = e.parameter.lbl_tag; /* I'm not sure if it us Tag or tag */
  ....
}

嗯。这里有一个小怪癖。在处理程序中,可以通过以下方法访问标记值

function doGet(){
   ....
   var lbl = app.createTextBox().setWidth('400').setId('lbl');
   lbl.setText('empty').setTag('tag value');
   ....
}

function showtag(e){
  var tag = e.parameter.lbl_tag; /* I'm not sure if it us Tag or tag */
  ....
}

我尝试使用这些标记的目的与存储服务器处理程序的中间值的目的相同,但也没有成功。我用这个类解决了这个问题。太糟糕了;-/我在问题追踪器上找不到任何与此相关的参考资料,是吗?不,我甚至没有试图找到。可能这是一个功能,而不是一个bug。我想知道,如果一个“功能”的值既不可见也不可记录,它怎么会有用…;-)我很好奇是否有人有其他的观点。。。无论如何,谢谢:-)我认为,标签(setTag)与id(setId)类似。也就是说,这两个参数都可以在创建过程中设置,也不可能在服务器处理程序中更改。标签的一个可能的使用案例是根据不同Id的标准组合控件。我尝试使用标签的目的与存储服务器处理程序的中间值的目的相同,但也没有成功。我用这个类解决了这个问题。太糟糕了;-/我在问题追踪器上找不到任何与此相关的参考资料,是吗?不,我甚至没有试图找到。可能这是一个功能,而不是一个bug。我想知道,如果一个“功能”的值既不可见也不可记录,它怎么会有用…;-)我很好奇是否有人有其他的观点。。。无论如何,谢谢:-)我认为,标签(setTag)与id(setId)类似。也就是说,这两个参数都可以在创建过程中设置,也不可能在服务器处理程序中更改。标签的一个可能的使用案例是通过一些标准将控件与不同的Id.waow!?太好了!我不知道。。。非常感谢,这里绝对是认识“万事通”的人的地方;-)现在我必须恢复我扔掉的代码。。。修订历史记录将有所帮助;-)哇!?太好了!我不知道。。。非常感谢,这里绝对是认识“万事通”的人的地方;-)现在我必须恢复我扔掉的代码。。。修订历史记录将有所帮助;-)