我已經問過similar question,但我真的無法弄清楚如何將這些元素連接在一起。我仍然不是很好Handlers
,我想我的問題是:在Google Apps腳本中連接UI元素(TabPanel - UiApp)
如何在doGet()函數之外訪問UI小部件(及其子項)?
我的用例是這樣的:我有一個項目/ ID的列表。我擁有所有基於ID的數據,這些數據將填充此應用程序的項目詳細信息選項卡。我爲這些項目中的每一個創建了'獨特'Button
,並將它們投入Grid
。現在,如果/當它被點擊時,我想專門爲每個Button
生成項目細節(detailPanel
)Widget
。
我有項目ID通過Hidden
連接到每個Button
(唯一),但我似乎無法給項目詳情選項卡(detailPanel
)連接到Button
如此,點擊後,我可以設置值爲TextBox
,DateBox
,ListBox
等Widget
s的detailPanel
。
我想我對這件事很失落。我想要避免附加detailPanel
的每個孩子Widget作爲Button
的callbackElement
不惜代價。有大約40個元素(我失去了計數),而且看起來效率很低。我幾乎可以肯定,如果我可以添加一個Widget
作爲回調元素,那麼我可以訪問所有子女Widget
s。但我試過了,似乎並非如此。
這是鏈接到公衆UiApp,它顯示了用戶界面。和姐姐Script Project (uneditable)。
所以我的''''detailPanel'已經嵌入了元素:4'VerticalPanel's都包含'Grid'。我有'detailsPanel'('VeriticalPanel')存儲在'fillDetails'函數的一個變量中。但是,我不確定如何訪問該面板的子部件(4個嵌入式面板,網格等)。 'detailPanel' ID不是動態的,它是靜態的('「detailPanel」')。由於我似乎沒有直接訪問子項,我是否需要*在fillDetails函數中通過ID獲取所有Widget才能訪問它們? –
是的,你應該這樣做......但是你應該給他們一些你可以很容易地(重新)在循環中構建的ID:像ele0,ele1,ele2 ......這樣在循環中你可以「ele」+ n來獲得它...爲小部件名稱做同樣的事情,使用e.parameter [「ele」+ n]也很容易檢索這些值。 –
啊,這就是我的想法。我希望有像'detailPanel.VerticalPanel.Grid.DateBox'這樣的元素鏈,但是現在我覺得這太奇怪了。我想知道 - 這是一個將來可能需要由另一個人維護的項目。將Widgets命名爲「widgetXX」'是否是個好主意?當然,通過使用循環代替40行代碼來唯一標識它們,它們更容易管理,但這也很難閱讀/理解它們在做什麼。 –