我有以下JQGrid
$("#requestTable").jqGrid({
url: url,
datatype: 'json',
mtype: 'GET',
altRows: 'true',
colNames: ['id', 'Request Date', 'Name', 'HomePhone', 'Address', 'Contact Date', 'Email'],
colModel: [
{ name: 'Id', index: 'Id', hidden: true },
{ name: 'RequestDate', index: 'RequestDate', width: 100 },
{ name: 'FullName', index: 'FullName', width: 125, sortable: false },
{ name: 'HomePhone', index: 'CabinetColor', width: 90, sortable: false },
{ name: 'FullAddressString', index: 'ShellColor', width: 260, sortable: false },
{ name: 'DealerContactDate', index: 'DealerContactDate', width: 105, editable: true,
editoptions:{
dataInit:function(element){
$(element).datepicker();
}
}
},
{ name: 'Email', index: 'Email', width: 110, sortable: false }
],
cellEdit:true,
cellurl:cellurl,
pager: '#pager',
rowNum: 50,
rowList: [ 25, 50, 75, 100],
sortname: 'id',
sortorder: "desc",
viewrecords: true,
height: "100%"
});
});
如您所见,DealerContactDate Cell可使用日期选择器进行编辑。 无论如何,只要在datepicker中选择日期并且它关闭,jqgrid就会保存数据吗? 现在,使用必须从datepicker中选择一个日期。然后再次选择该文本框并按Enter键,这太复杂了。 谢谢!
更新: 我为jqrid外的行和单元创建了两个变量,然后在网格afterEditCell事件中设置了这些变量。然后在datepickers上onSelect事件将这些传递给saveCell函数,它似乎工作。
var saverow = 0;
var savecol = 0;
$("#requestTable").jqGrid({
url: url,
datatype: 'json',
mtype: 'GET',
altRows: 'true',
colNames: ['id', 'Request Date', 'Name', 'HomePhone', 'Address', 'Contact Date', 'Email'],
colModel: [
{ name: 'Id', index: 'Id', hidden: true },
{ name: 'RequestDate', index: 'RequestDate', width: 100 },
{ name: 'FullName', index: 'FullName', width: 125, sortable: false },
{ name: 'HomePhone', index: 'CabinetColor', width: 90, sortable: false },
{ name: 'FullAddressString', index: 'ShellColor', width: 260, sortable: false },
{ name: 'DealerContactDate', index: 'DealerContactDate', width: 105, editable: true,
editoptions: {
dataInit: function (element) {
$(element).datepicker({
onSelect: function () {
$("#requestTable").jqGrid("saveCell", saverow, savecol);
}
});
}
}
},
{ name: 'Email', index: 'Email', width: 110, sortable: false }
],
cellEdit: true,
pager: '#pager',
rowNum: 50,
rowList: [25, 50, 75, 100],
sortname: 'id',
sortorder: "desc",
viewrecords: true,
height: "100%",
cellurl: cellurl,
afterEditCell: function (id, name, val, IRow, ICol) {
saverow = IRow;
savecol = ICol;
}
});
答案 0 :(得分:3)
您应该能够将datePicker中的onSelect()
事件与jqGrid中的saveRow()
结合使用。类似的东西:
$(element).datepicker({
onSelect: function(dateText, inst) {
var $input = inst.input; // the datepicker input
var $row = $input.parents("tr");
$("#requestTable").jqGrid('saveRow',$row.attr("id"), false); // this would probably need some work, I have no experience with jqGrid
});
答案 1 :(得分:1)
嗨我有不同的问题。即从datepicker中选择日期后的聚焦单元格。我把它从上面的Answer1修复了,即使这个答案不适合我的问题。 基本上,为了在jQGrid中选择日期后保持细胞聚焦, - 在Answerpickers onSelect()方法中触发'saveCell'事件,如Answer1所示。 - 分配saveRow,& beforeEditCell方法中的saveCol变量。
感谢所有人。