光滑网格 - 获取选定的单元格值,ID和字段

Slickgrid- getting selected cell value , id and field?

本文关键字:单元格 ID 字段 网格 获取      更新时间:2023-09-26

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

>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函数中处理此问题。

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");
  }
}

如果您从其他控件(如 . 单击按钮)访问网格

var selectRow = gridInstance.getSelectedRows();
alert(gridInstance.getDataItem(selectRow).columnName)