我正在使用slickgrid并且我在slickgrid中退出了新功能。我想知道是否有任何功能,通过它我可以获得所有单元格的完整信息到用户将点击的特定行?我也希望在特定单元格中编辑之前和之后获取值,以便我可以测量单元格中的更改。 获取活动单元格(即用户点击的地方)我正在使用
ifkaar_scenarioConfigTable.onClick.subscribe(cellClicked);
我正在检查单元格在哪里是我想要的单元格(即允许用户进行编辑/修改),如下所示
function cellClicked(e) {
var cell = ifkaar_scenarioConfigTable.getCellFromEvent(e);
if (col[cell.cell].id == "orderqty") {
console.log("orderqty pressed");
}
}
这工作正常,即当我点击任何单元格时,它会判断它是否为“orderqty”,但是我想进一步获取其值和其他单元格的值以便计算更改。我搜索过但找不到任何明确的文章(或者我无法理解)。任何帮助将受到高度赞赏。谢谢
答案 0 :(得分:11)
onClick
事件passes the row as an argument
function cellClicked(e, args) {
var item = grid.getDataItem(args.row);
}
function cellClicked(e, args) {
if (args.cell == grid.getColumnIndex('orderqty')) {
console.log("orderqty pressed");
}
}
您甚至可以将此过滤功能拉出到自己的功能中,并在该列中发生单击时传递回调
function forColumn(row, cell, columnID, fn) {
var cellNode = grid.getCellNode(row, cell);
var dataContext = grid.getDataItem(row);
if (cellNode && grid.getColumns()[cell].id === columnID) {
fn.call(this, cellNode, dataContext, row, cell);
}
}
function cellClicked(e, args) {
forColumn(args.row, args.cell, 'orderqty', function (cellNode, dataContext, row, cell) {
console.log("orderqty pressed");
});
}
要在编辑之前和之后获取单元格的值,您需要在编辑器的isValueChanged
函数中处理该列。
答案 1 :(得分:2)
function cellClicked(e) {
var grid = ifkaar_scenarioConfigTable;
var cell = grid.getCellFromEvent(e);
var item = grid.getDataItem(cell.row); // all the data in the row
if (cell.cell == grid.getColumnIndex('orderqty')) {
console.log("orderqty pressed");
}
}
答案 2 :(得分:0)
如果您从其他控件访问网格,如。点击按钮
var selectRow = gridInstance.getSelectedRows();
alert(gridInstance.getDataItem(selectRow).columnName)