是否可以在处理函数中更改callBackElement的值?

时间:2012-07-29 20:01:39

标签: google-apps-script

我有一个处理程序函数,它使用电子表格中的值更新一个非常大的UI。工作表的rowindex来自callbackElement e.parameter.hidden(隐藏是保存值的小部件),并且我在函数中递增/递减。

我有另一个处理函数,它在电子表格中搜索字符串值,并返回一个我分配给同一隐藏小部件的rowindex。

如果我首先触发'搜索'处理程序 然后'显示'处理程序,我的UI已更新了'找到'数据,这很不错但是需要在两个不同的按钮上单独点击两次。

现在我的问题:我怎样才能在'搜索处理函数'中包含对'display handler'的调用并传递所有e.parameters 修改值只有e.parameter.hidden

我知道e是一个有很多键和值的对象,但我不知道如何只操作一个值...

搜索处理程序的代码很短,如下所示:

function findname(e){ // this function is called by a handler triggered by a keypress on  a textBox
  var app = UiApp.getActiveApplication();
  var hiddenD = app.getElementById('hiddenD');
  var str = e.parameter.find ; // find is the textBox's name
  var found = point(str);// point() is a function that returns the rowindex of the found value
  hiddenD.setValue(found);// hiddenD is the hidden widget that I want to 'manipulate'
  nextitem(e);// nextitem is the function that updates the UI and that is normally called by a handler on another button
return app
}

我希望这个问题足够清楚(这不容易解释),如果不是,请问; - )

2 个答案:

答案 0 :(得分:1)

为什么不直接将rowIndex存储为CacheService属性?我正在使用它取代隐藏字段和隐藏文本框取得了很大成功。

您可以随时随地调用它们并在任何地方进行修改。

答案 1 :(得分:1)

e只是一个json数据,您可以通过其键进行操作。

代码骨架就像

searchHandlerFunction(e){
//Your all other sttements
//Assign the new value to hidden parameter
e.parameter.hidden = <your new value>;
DisplayFunction(e);
}