/// /// interface MyData extends Slick.SlickData { title: string; duration: string; percentComplete: number; start: string; finish: string; effortDriven: boolean; } var grid: Slick.Grid; var columns: Slick.Column[] = [ { id: "title", name: "Title", field: "title" }, { id: "duration", name: "Duration", field: "duration" }, { id: "%", name: "% Complete", field: "percentComplete" }, { id: "start", name: "Start", field: "start" }, { id: "finish", name: "Finish", field: "finish" }, { id: "effort-driven", name: "Effort Driven", field: "effortDriven" } ]; var options: Slick.GridOptions = { enableCellNavigation: true, enableColumnReorder: false }; var data: MyData[] = []; for (var i = 0; i < 500; i++) { data[i] = { title: "Task " + i, duration: "5 days", percentComplete: Math.round(Math.random() * 100), start: "01/01/2009", finish: "01/05/2009", effortDriven: (i % 5 == 0) }; } grid = new Slick.Grid("#myGrid", data, columns, options); grid.init(); grid.getData(); grid.getDataItem(14).title; grid.setData([{ title: "task", duration: "5 days", percentComplete: 5, start: "01/01/2013", finish: "12/12/2013", effortDriven: false }], true); var ids: string[] = []; for (i = 0; i < grid.getDataLength(); i++) { ids.push(grid.getDataItem(i).title); } var $selectedCells = $('.' + grid.getOptions().selectedCellCssClass); grid.getSelectedRows(); grid.getSelectionModel(); grid.setOptions({ selectedCellCssClass: "newSelection" }); grid.setSelectedRows([0]); $('.newSelection'); grid.setSelectedRows([0, 1, 2]); class SingleCellSelectionModel extends Slick.SelectionModel { private self: SingleCellSelectionModel = null; private _grid: Slick.Grid; constructor() { super(); this.self = this; } public init(grid: Slick.Grid) { this.self._grid = grid; this.self._grid.onClick.subscribe(this.self.handleGridClick); } public destroy() { this.self._grid.onClick.unsubscribe(this.self.handleGridClick); } public handleGridClick(e: any, args: any) { var cell = this.self._grid.getCellFromEvent(e); if (!cell || !this.self._grid.canCellBeSelected(cell.row, cell.cell)) { return; } this.onSelectedRangesChanged.notify([new Slick.Range(cell.row, cell.cell, cell.row, cell.cell)], new Slick.EventData(), this); } } var selectionModel = new SingleCellSelectionModel(); selectionModel.init(grid); grid.setSelectionModel(selectionModel); var column = grid.getColumns()[grid.getColumnIndex("title")]; var cols = grid.getColumns(); var sortable = cols[0].sortable; sortable ? console.log("It's sortable!") : console.log("It's not sortable!"); var data2 = grid.getColumns(); data2[0].name = "First"; grid.setColumns(data); grid.updateColumnHeader("FirstName", "A First Name"); grid.addCellCssStyles("test", { 0: { "number_column": "cell-bold", "title_column": "cell-title cell-highlighted" }, 4: { "percent_column": "cell-highlighted" } }); grid.canCellBeActive(5, 10); grid.canCellBeSelected(5, 10); grid.editActiveCell(new Slick.Editors.Date({ column: cols, container: undefined, grid: grid })); grid.setActiveCell(0, 0); grid.editActiveCell(new Slick.Editors.Date({ column: cols, container: undefined, grid: grid })); grid.flashCell(5, 10); grid.flashCell(5, 10, 500); grid.getActiveCell().row; grid.getActiveCell().cell; grid.getActiveCellNode().innerHTML; grid.getActiveCellPosition().bottom; grid.getActiveCellPosition().height; grid.getActiveCellPosition().left; grid.getActiveCellPosition().right; grid.getActiveCellPosition().top; grid.getActiveCellPosition().visible; grid.getActiveCellPosition().width; grid.getCellCssStyles("test")[0]["number_column"]; grid.getCellEditor(); grid.getCellFromEvent(new Slick.Event()); grid.getCellFromPoint(5, 10); grid.getCellNode(5, 10); grid.getCellNodeBox(5, 10); grid.getCellNodeBox(5, 10).bottom; grid.getCellNodeBox(5, 10).height; grid.getCellNodeBox(5, 10).left; grid.getCellNodeBox(5, 10).right; grid.getCellNodeBox(5, 10).top; grid.getCellNodeBox(5, 10).visible; grid.getCellNodeBox(5, 10).width; grid.gotoCell(5, 10); grid.gotoCell(5, 10, true); grid.navigateDown(); grid.navigateLeft(); grid.navigateNext(); grid.navigatePrev(); grid.navigateRight(); grid.navigateUp(); grid.removeCellCssStyles("test"); grid.resetActiveCell(); grid.setActiveCell(5, 10); grid.setCellCssStyles("test", { 0: { "number_column": "cell-bold", "title_column": "cell-title cell-highlighted" }, 4: { "percent_column": "cell-highlighted" } }); // Begin DataView tests var dataView = new Slick.Data.DataView(); var gridWithDataView = new Slick.Grid('#grid2', dataView, columns, options); dataView.getIdxById('foo') + 5; columns.forEach(column => { if (column.editor !== Slick.Editors.Integer) { return; } }); grid.onSort.subscribe((e, args) => { var sortCol:string = args.sortCols[0].sortCol.field; });