Встроенное редактирование jqGrid - добавьте ключи для сохранения и отмены
У меня проблема с встроенным редактированием в jqGrid. Я хочу иметь два метода редактирования:
- Первый - редактирование двойным щелчком по строке (это работает), и я могу "сохранить" или "отменить" только клавишами "войти" и "бежать". Что мне делать, если я хочу иметь активные значки "сохранить" и "отменить"? Это неактивно.
- Во-вторых - (что более важно), редактирование, выбрав строку и нажав значок "изменить" (это тоже работает), и я могу "сохранить" или "отменить" только по значкам. Что мне делать, если я хочу использовать клавиши "enter" и "escape" для сохранения и отмены?
Меня интересует только встроенное редактирование. Я читал здесь о редактировании 'значок': When the button is clicked a editRow method is executed
, У меня есть функция, но она не открывается автоматически после нажатия значка "Редактировать". Следует перезаписать функцию по умолчанию?
$(function(){
var rowid;
$("#list").jqGrid('editRow',rowid,
{
keys : true,
oneditfunc: function() {
alert ("edited");
}
});
});
Мой код JqGrid:
$(function(){
$("#list").jqGrid({
url:'<?php echo $this->baseUrl('/jq-grid/view'); ?>',
datatype: 'xml',
mtype: 'GET',
colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'],
colModel :[
{name:'invid', index:'invid', width:55, sorttype:'int', hidden:false,
editable:true, key: true,
editrules:{ required:false, integer:true, edithidden:true} },
{name:'invdate', index:'invdate', width:90,
editable:true,
editrules:{ date:true} },
{name:'amount', index:'amount', width:80, align:'right',
editable:true,
editoptions:{readonly:false} },
{name:'tax', index:'tax', width:80, align:'right',
editable:false,
editrules:{ edithidden:true} },
{name:'total', index:'total', width:80, align:'right',
editable:false},
{name:'note', index:'note', width:150, align:'right', sortable:false,
editable:false}
],
rowNum:5,
rowList:[10,15,20,30],
rowTotal: 2000, //maksimum
loadonce: true,
pager: '#pager',
viewrecords: true,
sortname: 'invid',
sortorder: 'asc', //'desc'
gridview: true,
height: '100%',
width: '700',
ondblClickRow: function(id){
//jQuery('#list').editRow(id); //, true
jQuery('#list').jqGrid('editRow',id,true);
},
editurl: '<?php echo $this->baseUrl('/jq-grid/edit'); ?>'
//hidegrid:false,
//hiddengrid:true,
//caption: 'Grid'
});
$(function(){
$("#list").jqGrid('filterToolbar',{stringResult: true,searchOnEnter : false});
});
$(function(){
$("#list").jqGrid('navGrid',"#pager",{edit:false,add:false,del:true}); //,search:false,refresh:false
});
$(function(){
$("#list").jqGrid('inlineNav',"#pager",{
save:true,
edit:true,
addParams: {addRowParams: {}}
})
});
1 ответ
Код поля ниже позволит встроенное редактирование и отображать значок сохранения и отмены
{ name: "action", formatter: 'actions', index:"action", align: "left",sortable: false, editable: false,
formatoptions:{
keys: true,
editbutton: true,
delbutton: true,
editOptions: {
closeOnEscape: true,
closeAfterAdd: true,
viewPagerButtons: false,
closeAfterEdit: true,
afterSubmit: function (response, postdata) {
var r = $.parseJSON(response.responseText);
return [r.success, r.Description, null];
}
},
deleteOptions: {
closeOnEscape: true,
closeAfterAdd: true,
viewPagerButtons: false,
closeAfterDelete: true,
afterSubmit: function (response, postdata) {
var r = $.parseJSON(response.responseText);
return [r.success, r.Description, null];
}
}
}
},