Как вернуть определенное значение ячейки в SlickGrid? - PullRequest
1 голос
/ 22 января 2011

Для жизни я не могу вернуть определенное значение ячейки в SlickGrid. Здесь есть пример SO . Но это тоже не сработало. Я использую учебник SlickGrid № 7 в качестве моего примера. Все, что я пытаюсь сделать, это добавить событие click в ячейку, которая возвращает значение этой ячейки.

Примечание: я загружаю свои данные через JSON-запрос, и все работает хорошо. Моё событие клика срабатывает, но значение не определено. Для краткости я опущу мои столбцы сетки и код опций. Вот код и спасибо. Все это отличная сетка.

var sortcol = "id";
    var sortdir = -1;
    $(function () {
        $.getJSON(baseURL() + 'programs', function (data) {
            dataView = new Slick.Data.DataView();
            grid = new Slick.Grid($("#program-grid"), data, programColumns, programOptions);

            grid.onSort = function (sortCol, sortAsc) {
                sortdir = sortAsc ? 1 : -1;
                sortcol = sortCol.field;

                if (sortAsc == true) {
                    data.sort(compare);
                }
                else {
                    data.reverse(compare);
                }
                grid.render();
            };
            grid.onClick = function (e, row, cell) {
                if (programColumns[cell].id == "id") {
                    var x = data[row][cell].field;//This is where I am stuck
                    window.location.href = "http://google.com/" + x;
                }
            }

        });
    });

Ответы [ 3 ]

4 голосов
/ 23 января 2011

Вы почти на месте, вы должны использовать data [row] .fieldname. У вас есть поле в ваших данных под названием "поле"?

0 голосов
/ 28 июля 2016

Привязка к событию onCellChange

grid.onCellChange.subscribe( function( e, args ) {

    console.log( args.item[ grid.getColumns()[ args.cell ].field ] );

} );

Возвращает

"{некоторое значение}" и т. Д. "Этонедавно измененное значение "

Документы

onCellChange ({ row: number, cell: number, item: any })

События сетки (onCellChange)

0 голосов
/ 10 апреля 2014

Если вы используете dataView, это просто:

// Get the object containing row and cell index of a clicked row.
var gridObject = roundGrid.getCellFromEvent(e); 

var row = gridObject.row; // get selected row index
var row_values = roundDataView.getItem(row); // get the row object 

// Get the actual value.
var cellValue = row_values[roundGrid.getColumns()[gridObject.cell].field]; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...