[英]How can chained functions access form data in Google Apps Scripts?
此问题是“ GAS中是否提供“链接”功能? ”的扩展。
我需要做类似的事情...复制/粘贴可以回答上一个问题的代码示例:
var app = null;
function firstHandler(e) {
if( app == null )
app = UiApp.getActiveApplication();
//do your thing
//now, instead "return app;" you return the second handler
return secondHandler(e);
}
function secondHandler(e) {
if( app == null )
app = UiApp.getActiveApplication();
//do your job
return app;
}
其中firstHandler()是按钮的单击处理程序。 此示例与我需要做的区别是,就我而言,secondHandler()需要从表单中提取一条信息。 具体来说,我需要从“列表”框中获取选定的值。
通常,我要让secondHandler()获取该信息的方式是将包含列表框的父对象传递到函数中,然后有如下一行:
var value = eventInfo.parameter.listBoxName;
但是,我无法将列表框所在的网格传递到secondHandler()中。 这是我尝试过的:
var app = null;
function firstHandler(e) {
if( app == null )
app = UiApp.getActiveApplication();
//do your thing
//get the object now, pass it into the chained function
var myGrid = app.getElementById("gridId");
return secondHandler(myGrid);
}
function secondHandler(e) {
if( app == null )
app = UiApp.getActiveApplication();
var value = e.parameter.listBoxName.toString();
//do your job
return app;
}
但是,这没有奏效。 我还尝试将secondHandler()修改为完全无参数,这样我就可以绕过将网格传递到firstHandler()中的secondHandler()中的麻烦:
var app = null;
function firstHandler(e) {
if( app == null )
app = UiApp.getActiveApplication();
//do your thing
return secondHandler(e);
}
function secondHandler(e) {
if( app == null )
app = UiApp.getActiveApplication();
var value = app.getElementById('listBoxId').value;
//do your job
return app;
}
这也不起作用...“ app.getElementById('listBoxId')。value”似乎不返回任何内容。 我不知道为什么不:(
关于我该如何做的任何想法? 有人知道为什么我的app.getElementById解决方法无法按预期进行吗? 任何和所有帮助表示赞赏!!!
尝试这个。
function firstHandler(e) {
var app = UiApp.getActiveApplication();
//do your thing
return secondHandler(e);
}
function secondHandler(e) {
var app = UiApp.getActiveApplication();
var value = e.parameter.listBoxName;
//do your job
return app;
}
确保在创建处理程序时使用此功能。
app.createServerHandler("firstHandler").addCallbackElement(gridContainingListBox);
如果要从页面中检索值,则必须使用e.parameter
,在添加适当的回调元素时已正确设置。 如果要在UI中修改元素,那么可以使用app.getElementById(...).whateverFunction()
,但是请注意,您不能调用getValue()
等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.