我必须通过代码更改单元格值并使其保持可编辑状态。使用此代码,我可以更改其他单元格的值,但单元格“paidHour”更改为不可编辑状态。 如何让它再次可编辑?
editoptions: { dataEvents: [{ type: 'keyup', fn: function (e) {
var rowId = $(e.target).closest("tr.jqgrow").attr("id");
var total = parseInt(e.target.value, 10);
var paidWeek = parseInt($("#List").getCell(rowId, 'paidWeek'), 10);
var addHourBank = 0;
if (total >= paidWeek) {
addHourBank += (total - paidWeek);
total = paidWeek;
}
$("#List").setCell(rowId, 'paidHour', total);
最佳答案
我不确定我是否理解正确。区分编辑 和可编辑 单元格/行很重要。可编辑的是在表单编辑、内联编辑或单元格编辑方面可以编辑的行或单元格。可能当前单元格正在编辑,您想要更改单元格的值。如果您不能使用 setCell
方法。而不是你必须得到 <td>
作为 DOM 或作为 jQuery 包装器,然后设置子项的值 <input>
单元格的元素。
例如,您可以使用定义如下的 getColumnIndexByName 函数
var getColumnIndexByName = function (grid, columnName) {
var cm = grid.jqGrid('getGridParam', 'colModel'), l = cm.length, i;
for (i = 0; i < l; i++) {
if (cm[i].name === columnName) {
return i; // return the index
}
}
return -1;
}
它为您提供行内列的索引。所以你可以分割线
var rowId = $(e.target).closest("tr.jqgrow").attr("id");
进入
var $tr = $(e.target).closest("tr.jqgrow"), rowId = $tr.attr("id");
$tr
表示 <tr>
的 DOM 的 jQuery 包装器.所以要得到 <td>
'paidHour'
的电池你可以使用
var iCol = getColumnIndexByName ($(this), 'paidHour');
var $td = $tr.find(">td:nth-child(" + (iCol + 1) + ")");
并更改您可以使用的单元格的值
$td.find("input").val(total);
关于javascript - 设置单元格值并使其在内联编辑中保持可编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11226580/