4

我正在使用 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”,但我想进一步获取它的值和其他单元格的值以计算更改。我已经搜索但找不到任何明确的文章(或者我无法正确理解)。任何帮助将不胜感激。谢谢

4

3 回答 3

14

onClick事件将行作为参数传递

获取点击行的数据项

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在编辑器的函数中处理该列的值。

于 2013-11-02T04:16:47.477 回答
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");
  }
}
于 2013-10-31T15:48:41.013 回答
1

如果您从其他控件(如 . 点击按钮

var selectRow = gridInstance.getSelectedRows();
alert(gridInstance.getDataItem(selectRow).columnName)
于 2014-03-17T03:16:48.090 回答