2012-05-23 8 views
2

Я впервые внедряю treeView в скрипте Google Apps и сталкиваюсь с некоторыми проблемами.Определите, какой TreeItem был выбран в дереве скриптов Google Apps

Этот обработчик действительно уволят нормально при выборе TreeItem

tree.addSelectionHandler(app.createServerSelectionHandler("restClick")); 

я ожидал, чтобы быть в состоянии идентифицировать выбранный элемент в обработчике

function restClick(e) { 
    var app = UiApp.getActiveApplication(); 
    Logger.log(e.parameter.source); 
    var tree = app.getElementById(e.parameter.source); 
    Logger.log(tree.getId()); 
    return app; 
} 

Приведенный выше код правильно идентифицирует объект дерева - однако я не могу понять, как получить выбранный элемент - нет подходящего метода, такого как getSelectedItem(), и нет полезного свойства (e), которое помогает либо

Спасибо.

ответ

4

Это known issue. Вы должны следить за ссылкой и ставить эту проблему, чтобы отслеживать обновления и голосовать за нее. В комментариях к проблеме есть объяснение несколько громоздкого обходного пути, если это действительно важно для вас.

«Древовидный объект» должен работать, как и все другие виджеты в скрипте приложений, с использованием метода setName, где мы могли бы получить имя или индекс элемента параметра события обработчика (после добавления дерева в качестве элемента обратного вызова в обработчике с использованием), например

tree.setName('mytree').addSelectionHandler(app.createServerSelectionHandler("restClick"). 
    addCallbackElement(tree)); 

Но это не сработает, как сообщается в отчете об ошибке.

+0

Henrique, Спасибо вам за быстрый комментарий. Однако у древовидного объекта нет метода setName() - https://developers.google.com/apps-script/class_tree. – bruce

+0

Вы правы, нет метода 'setName'. И найти немного больше, я обнаружил, что невозможно выбрать выделенный элемент. Я обновил свой ответ. –

+0

Henrique, спасибо, что указал на этот отчет об ошибке. Я взглянул на обходной путь, но я не думаю, что этот подход будет работать для меня. Я просто подожду, пока он не будет исправлен. Еще раз спасибо. Bruce – bruce

Смежные вопросы