对于我的生活,我似乎无法在SlickGrid中返回特定的单元格值。在SO here.上有一个例子,但这也没有用。我使用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;
}
}
});
});
答案 0 :(得分:4)
你几乎就在那里,你应该使用数据[row] .fieldname。您的数据中是否有一个名为“field”的字段?
答案 1 :(得分:0)
如果你正在使用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];
答案 2 :(得分:0)
绑定到onCellChange事件
grid.onCellChange.subscribe( function( e, args ) {
console.log( args.item[ grid.getColumns()[ args.cell ].field ] );
} );
<强>返回强>
&#34; {some value}&#34;等等&#34;这是新更改的值&#34;
<强>文档强>
onCellChange ({ row: number, cell: number, item: any })