Autocomplete 自动完成单元格上的平滑网格集值
我试图在一个光滑的网格中设置值,从jQuery到val和文本,例如find('div.slick-cell.l2.r2')。text('xyz')。在讨论中的单元格上有一个jquery自动完成,但它只在单击时被激活。因此,当我单击相关单元格时,它会被编辑器中的初始默认值覆盖:Autocomplete 自动完成单元格上的平滑网格集值,autocomplete,edit,slickgrid,Autocomplete,Edit,Slickgrid,我试图在一个光滑的网格中设置值,从jQuery到val和文本,例如find('div.slick-cell.l2.r2')。text('xyz')。在讨论中的单元格上有一个jquery自动完成,但它只在单击时被激活。因此,当我单击相关单元格时,它会被编辑器中的初始默认值覆盖: function ComboBoxEditor(args) { ... this.loadValue = function (item) { defaultValue = item[args
function ComboBoxEditor(args) {
...
this.loadValue = function (item) {
defaultValue = item[args.column.field] || "";
$input.val(defaultValue);
$input[0].defaultValue = defaultValue;
$input.select();
};
...
我可以从slick grid中获取jQuery文本值。将slickgrid视为一个渲染引擎和数据接口(您使用的是dataView,对吧?)jQuery或javascript对dom元素的编辑不起作用,因此请考虑jQuery/javascript如何使用dataView方法进行更新。 我在添加到时遇到了相同的问题 我检测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();
}
}
将slickgrid视为渲染引擎和数据接口(您使用的是dataView,对吧?)Jquery或javascript对dom元素的编辑不起作用,因此请考虑Jquery/javascript如何使用dataView方法进行更新。 我在添加到时遇到了相同的问题 我检测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();
}
}