[英]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.