我正在尝试通过jQuery和val文本在一个光滑的网格中设置值,例如.find( 'div.slick-cell.l2.r2')。文本( 'XYZ')。有问题的单元格上有一个jquery自动完成,但它只在点击时激活。因此,当我单击相关单元格时,它会被编辑器中的初始defaultValue覆盖:
function ComboBoxEditor(args) {
...
this.loadValue = function (item) {
defaultValue = item[args.column.field] || "";
$input.val(defaultValue);
$input[0].defaultValue = defaultValue;
$input.select();
};
...
我可以从光滑网格的世界中获取jQuery文本值。
答案 0 :(得分:0)
将slickgrid视为渲染引擎,将dataView视为数据接口(您正在使用dataView吗?)dom元素的Jquery或javascript编辑无法工作,请考虑jquery / javascript如何使用dataView方法进行更新。 将drag and drop of files添加到SlickGrid
时,我遇到了同样的问题我检测到drop的elementID并将其映射回dataView行和列。
这是我用于文本粘贴的功能:
function insertText(textString, location) {
grid.resetActiveCell();
$(location).click();
var startCell = grid.getActiveCell();
if (startCell) {
// only paste text into active cells for now
var columnDef = grid.getColumns();
var colField = columnDef[startCell.cell].field;
if (!dataView.getItem(startCell.row)) {
// new row
var tobj = {'id': "new_" + (Math.random() + 1).toString(36).substring(7)};
tobj[colField] = textString;
dataView.addItem(tobj);
} else {
// modify existing cell
var item = dataView.getItem(startCell.row);
item[colField] = textString;
dataView.updateItem(item.id, item);
}
grid.resetActiveCell();
grid.render();
dataView.refresh();
}
}