如果单元格内容为空,则saveRow不起作用

时间:2014-11-18 13:48:26

标签: jquery jqgrid

我有一个使用内联编辑的网格。当我点击网格时,我已经为saveRow做了一个逻辑,并且输入了按下的标准。除非用户没有在单元格中输入任何内容,否则它的效果很好。这就是:enter image description here

正如你所看到的那样,输入仍然存在,只有当我用一些文本填充单元格时它才会消失。我该如何避免这种行为?

这是我的代码:

$('body').bind('click', function(e) { // Click listener
    if (lastSelectedRow != "" ) { //if a row is selected for edit 
        if($(e.target).closest('#grid_data').length == 0) { 
            $('#grid_data').saveRow(lastSelectedRow, false, 'clientArray');
            lastSelectedRow="";
        } 
    } 
});

$("#grid_data").jqGrid({    
    url: '../json/jsonData.jsp',
    datatype: 'json',
    jsonReader:{
        root: 'rows', //dados
        page: 'page', //página requisitada
        total: 'total', //total de páginas
        records: 'records' //total de registros
    },      
    pager: '#pager_data',
    rowNum: 10,
    rowList: [10,20,30],
    autoencode: true, 
    height: 230,
    width: 650,
    gridview: true,
    viewrecords: true,
    caption: "Campos de Metadados",
    cellsubmit : 'clientArray',
    editurl: 'clientArray',
    colNames:['ID','ID Metadata','Descrição','Valor'],
    colModel:[
        {name:'metadataFieldId', width:80, sorttype:"int", sortable: true, editable: false},
        {name:'metadataId', hidden: true},
        {name:'description', width:235, sortable: true, editable: false},
        {name:'value', width:235, sortable: true, editable: true, editrules:{required:true}}
    ],
    afterEditCell: function(rowId, cellName, value, iRow, iCol) {
        // Change text color
        var $row = $('#'+iRow+'_value');
        $row.css('color','black');
    },
    onSelectRow: function (id) {
        var $this = $(this);
        if (id && id !== lastSelectedRow) {
            if (lastSelectedRow != undefined) {
                $('#grid_data').saveRow(lastSelectedRow, false, 'clientArray');
            }
            $this.jqGrid('editRow', id, true);
            lastSelectedRow = id;
        }
    }
}); 

1 个答案:

答案 0 :(得分:0)

我认为原因在于使用editrules: {required: true},它不允许在'value'列中使用空值。如果要允许在列中保存空值,则应该删除该值。

相关问题