Обратный вызов SlickGrid при RowSelect?

Я хочу добавить обратный вызов, когда пользователь выбирает строку в таблице, но я не могу понять, как это сделать...

Вот что у меня есть до сих пор:

    <script src="/js/jquery-1.4.2.min.js"></script>
    <script src="jquery-ui-1.8.8.custom.min.js"></script>
    <script src="jquery.event.drag.2.0.min.js"></script>
    <script src="slick.core.js"></script>
    <script src="slick.rowselectionmodel.js"></script>
    <script src="slick.grid.js"></script>
    <script>
        var grid;
        var columns = [ /* my column definitons */ ];
        var options = {
            enableCellNavigation: true,
            enableColumnReorder: false,
            enableAddRow: true
        };

        $(function() {
            $.getJSON('/actions/unit_list.php', function (data) {
                grid = new Slick.Grid("#myGrid", data, columns, options);
                grid.setSelectionModel(new Slick.RowSelectionModel());
                $('#myGrid').show();
            });
        });
    </script>

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

Кто-нибудь может мне с этим помочь?


person neezer    schedule 19.01.2011    source источник


Ответы (2)


Ааа, после просмотра большей части кода в примере 6 -- в частности, взаимодействие с удаленной моделью - я вижу, что мне нужно вызвать триггерную функцию следующим образом:

grid.onSelectedRowsChanged.subscribe(function() { console.log(grid.getSelectedRows()); });

Отсюда я могу использовать grid.getSelectedRows() для возврата выбранных строк, как указал @Tin.

person neezer    schedule 19.01.2011
comment
столкнулся с тем же, спасибо за ответ. (Еще одна вещь, это требует импорта slick.rowselectionmodel.js) - person Mutant; 29.01.2014

Вы можете получить выбранные строки, вызвав grid.getSelectedRows().

person Tin    schedule 19.01.2011
comment
Но это не обратный вызов, это просто общедоступная функция для возврата выбранных строк. Я хочу запустить функцию, как только пользователь нажмет на строку. Как бы я это сделал? - person neezer; 19.01.2011
comment
Или я ошибаюсь? Я пробовал что-то вроде grid.onSelectedRowsChanged = function() { alert('something happened!'); };, но получаю сообщение об ошибке Uncaught TypeError: Object function () { alert('something happened!'); } has no method 'notify'... - person neezer; 19.01.2011