我必须通过代码更改单元格值并使其可编辑。使用此代码,我可以更改其他单元格的值,但单元格“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);
答案 0 :(得分:3)
我不确定我理解你是否正确。区分编辑和可编辑单元格/行非常重要。可编辑是可以在表单编辑,内联编辑或单元格编辑方面编辑的行或单元格。可能当前正在编辑 单元格并且您想要更改单元格的值。在这种情况下,您无法使用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>
的{{1}}单元格,您可以使用
'paidHour'
并更改您可以使用的单元格的值
var iCol = getColumnIndexByName ($(this), 'paidHour');
var $td = $tr.find(">td:nth-child(" + (iCol + 1) + ")");