【发布时间】:2014-12-16 21:19:09
【问题描述】:
我的 jqGrid 有一列包含一个复选框。我注意到当用户切换复选框时,jqGrid 实际上并没有将该行置于编辑模式。所以当用户点击保存按钮时,复选框的新值不会被保存。
这是 jgGrid 中复选框的默认行为吗?让 jqGrid 保存复选框值的最佳方法是什么?
这里是 jqGrid 代码:
var myGrid = jQuery("#myGrid");
myGrid.jqGrid({
editurl: 'UpdateData',
datatype: function (postdata) {
//some code
},
height: "450",
footerrow: false,
userDataOnFooter: false,
autowidth: true,
viewrecords: true,
rowNum: 100,
rowList: [25, 50, 100, 200, 300, 400, 500, 1000],
sortname: 'SomeId',
pager: '#footer',
caption: "",
colNames: ['Field1', 'Field2'],
colModel: [
{ name: 'Col1', index: 'Col1', hidden: false, editable: true, sortable: true, search: true },
{ name: 'MyCheckBox', index: 'MyCheckBox', hidden: false, editable: true, edittype: 'checkbox', editoptions: { value: "True:False" }, formatter: "checkbox", formatoptions: { disabled: false }, search: true }
],
onSelectRow: function (index) {
myGrid.jqGrid('editRow', index, true);
}
});
myGrid.jqGrid('navGrid', '#footer',
{ edit: false, add: false, del: false, search: false },
{ closeAfterAdd: true }, // use default settings for edit
{ closeAfterAdd: true, left: ((document.body.clientWidth / 2) - 100), top: ((document.body.clientHeight / 2) - 50) }, // use default settings for add
{ }, // delete instead that del:false we need this
{ multipleSearch: false }, // enable the advanced searching
{ closeOnEscape: true} /* allow the view dialog to be closed when user press ESC key*/
);
myGrid.jqGrid('navButtonAdd', '#footer',
{
buttonicon: "none",
caption: "Save",
onClickButton: function () {
//save the currently selected row
}
})
我正在考虑使用 jQuery 为每个复选框附加一个“更改”处理程序,当用户单击复选框时,该处理程序会将该行置于编辑模式。虽然看起来像是一个 hack,但我不确定如何正确识别网格中的复选框列(我的示例仅显示一个复选框,但网格实际上有两个)。
jqGrid 是否支持比这更好的复选框行为?
【问题讨论】: