2012-07-29 52 views
0

我試圖改變一個元素的ID來響應一個事件,但我似乎無法得到它的工作。我已經創建了一個簡化的示例,說明了我正在嘗試執行的操作。是否可以使用apps-script更改元素的ID以響應事件?

function handleEvent(e) { 
    var app = UiApp.getActiveApplication(); 
    app = changeId_(app, 0, 1); 
    return app; 
} 

function changeId_(app, idOld, idNew) { 
    app.getElementById(idOld + "element").setId(idNew + "element"); 
    return app; 
} 

我只是想知道是否真的有可能做,因爲我不能想到代碼有什麼問題。

回答

1

您應該可以使用網格並替換網格中的元素。當您替換網格中的元素時,可以爲新元素/「小部件」使用新的ID。 在我的情況下,我重新填充整個網格以使代碼簡單,但我認爲可以替換單個元素。

小心小部件ID,如果您重新使用舊ID作爲新小部件,那麼確保舊部件和新小部件的小部件類型相同。

1

我不認爲這是可能的。但你爲什麼要這麼做?如果您可以提供使用案例,也許有社區可以幫助您的替代方案。

+0

對不起有幾個繁忙的日子。 在我的應用程序中,用戶可以搜索名稱(或名稱的一部分)。這將一個返回對象填充到一個文本框(包含名稱)和一個保存和刪除按鈕的列表中。 在數據庫中我有一個名稱和ID字段。但是,目前如果用戶更改名稱,我無法知道該ID。所以爲了避免在數據庫中添加一個額外的字段,我想改變按鈕的ID以匹配數據庫中對象的ID。 希望是有道理的。我現在有一個使用隱藏元素的工作。 – 2012-08-02 07:08:39

+0

你可以考慮在你的代碼中使用ClientHandler,當列表發生某些變化時被調用 – Srik 2012-08-02 07:55:30

+0

問題是,當用戶創建一個新條目時,應用程序在創建條目之前無法知道該條目的ID。一旦條目提交創建,我就知道該ID,並且需要改變它。我不認爲用客戶端處理程序實際上可以做到這一點。不過,我明白你的想法。 – 2012-08-02 19:22:48

相關問題