我的JqGrid中有一个复选框列,该复选框列是从数据库加载的,因此在加载时它是选中的还是未选中的。
我想要的是:如果复选框被用户选中或取消选中,我想同时更新数据库。我不希望用户按Enter或其他任何东西。只需单击一下即可将操作发送到数据库
名称:“Aktiv”,索引:“Aktiv”,宽度:100,编辑类型:“复选框”,对齐:“居中”,格式:“复选框”,可编辑:true,格式选项:{disabled:false}
最佳答案
您可以在click
内设置loadComplete
事件处理程序:
loadComplete: function () {
var iCol = getColumnIndexByName ($(this), 'Aktiv'), rows = this.rows, i,
c = rows.length;
for (i = 1; i < c; i += 1) {
$(rows[i].cells[iCol]).click(function (e) {
var id = $(e.target).closest('tr')[0].id,
isChecked = $(e.target).is(':checked');
alert('clicked on the checkbox in the row with id=' + id +
'\nNow the checkbox is ' +
(isChecked? 'checked': 'not checked'));
});
}
}
在哪里
var getColumnIndexByName = function(grid, columnName) {
var cm = grid.jqGrid('getGridParam', 'colModel'), i, l;
for (i = 1, l = cm.length; i < l; i += 1) {
if (cm[i].name === columnName) {
return i; // return the index
}
}
return -1;
};
您应该使用jQuery.ajax而不是
alert
将有关更新复选框状态的信息发送到服务器。您可以看到一个演示here。
关于jqgrid - JQgrid复选框onclick更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7208412/