2012-07-29 76 views
0

我有一個處理函數正在用電子表格中的值更新一個非常大的用戶界面。該表的rowindex來自一個callbackElement,作爲e.parameter.hidden(隱藏是保存該值的小部件),並且我在該函數中增加/減少。是否可以在處理函數中更改callBackElement的值?

我有另一個處理函數,它搜索電子表格中的字符串值並返回一個rowindex,我分配給這個相同的隱藏小部件。

如果我引發了「搜索」的處理程序第一然後「顯示」處理,我有我的用戶界面與「發現」的數據,這是好的,但需要在兩個不同的按鈕,兩個獨立的點擊更新。

現在我的問題:我怎麼能包括在「搜索處理函數」到「顯示處理」的呼叫,並通過所有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 
} 

嗯,我希望這個問題是非常明顯的(這是不容易解釋),如果不是請向;-)

+0

你好嗶嘰, 你的意思是:在去更新一個小部件的價值? https://productforums.google.com/d/topic/apps-script/lABoP-cJcGQ/discussion 此解決方案的工作原理,我已經使用了好幾次。 我假設你不是指 e.parameter.hidden =「new value」; doDisplay(e); – eddyparkinson 2012-07-30 00:56:36

+0

謝謝Eddy,當我使用Waqar的解決方案時,小部件更新了它的'顯示值'(談論一個隱藏的小部件,這很有趣;-)在接下來的'返回'...感謝鏈接。 – 2012-07-30 07:59:11

回答

1

e只是一個json數據,你可以通過它的鍵來操作。

代碼框架就像

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

也許,你將不得不通過應用程序實例 – 2012-07-30 06:57:55

+0

嗯......就這麼簡單!我應該感到羞愧,不知道這一點;-)非常感謝,效果很好。 – 2012-07-30 07:50:44

+0

@Serge insas:沒有什麼值得羞恥的。我們只是相互學習。我始終以您對該論壇的奉獻爲靈感。 – 2012-07-30 07:59:45

1

你爲什麼不只是存儲的rowIndex爲一個CacheService prope rty?我用這個代替隱藏字段和隱藏文本框取得了很大的成功。

你可以從任何地方打電話給他們,並在任何地方修改他們。

+0

這裏有一點,這將是一個很好的解決方案,但我希望能夠在開發腳本時實際「查看」值,因此我在此開發過程中用textBox替換此隱藏的窗口小部件,並將其更改爲隱藏工作...也許不是最聰明的想法,但我喜歡它,因爲記錄器不能在處理函數中使用,它證明對我來說是一個很好的幫助;-)。無論如何,感謝您的建議! – 2012-07-30 07:55:23

相關問題