Slickgrid-获取选定的单元格值,id和字段?

时间:2013-10-31 07:58:40

标签: javascript slickgrid

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

3 个答案:

答案 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)