Встроенное редактирование jqGrid - добавьте ключи для сохранения и отмены

У меня проблема с встроенным редактированием в jqGrid. Я хочу иметь два метода редактирования:

  1. Первый - редактирование двойным щелчком по строке (это работает), и я могу "сохранить" или "отменить" только клавишами "войти" и "бежать". Что мне делать, если я хочу иметь активные значки "сохранить" и "отменить"? Это неактивно.
  2. Во-вторых - (что более важно), редактирование, выбрав строку и нажав значок "изменить" (это тоже работает), и я могу "сохранить" или "отменить" только по значкам. Что мне делать, если я хочу использовать клавиши "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]; } } } },

Другие вопросы по тегам