将列设置为在JqGrid中显示0

将列设置为在JqGrid中显示0,jqgrid,Jqgrid,我有一个jqGrid。 我的职能是—— 当网格加载时,数据库将返回“Miles”的值,但我不想显示它。我只想显示0,当我编辑英里值时,它应该映射到对象中的英里。 请让我知道我如何才能做到这一点? 谢谢。要完成您需要的任务,您需要为“英里”列提供一个格式化程序和一个不可更改的内容。您尚未指定如何编辑网格行(内联、表单编辑、自定义等),但我创建了内联编辑作为示例 这里有一个完整的解决方案,如果你想玩它。要进行编辑,只需单击该行,里程在编辑时将显示其原始值,但在非编辑模式下显示0。有关格式化工作原理的

我有一个jqGrid。 我的职能是——

当网格加载时,数据库将返回“Miles”的值,但我不想显示它。我只想显示0,当我编辑英里值时,它应该映射到对象中的英里。 请让我知道我如何才能做到这一点?
谢谢。

要完成您需要的任务,您需要为“英里”列提供一个格式化程序和一个不可更改的内容。您尚未指定如何编辑网格行(内联、表单编辑、自定义等),但我创建了内联编辑作为示例

这里有一个完整的解决方案,如果你想玩它。要进行编辑,只需单击该行,里程在编辑时将显示其原始值,但在非编辑模式下显示0。有关格式化工作原理的更多详细信息,请参阅

您可以按如下方式自定义存储行,并放置自己的post url

 saveparameters = {
        "successfunc" : null,
        "url" : "yoururl",
            "extraparam" : {},
        "aftersavefunc" : null,
        "errorfunc": null,
        "afterrestorefunc" : null,
        "restoreAfterError" : true,
        "mtype" : "POST"
    }

    jQuery("#grid_id").jqGrid('saveRow',rowid,  saveparameters);

@在这个问题上,Oleg可以帮助您。您可以提供一个用于填充网格的输入数据的示例吗?我指的是
url:“/Log/GetLogs”
返回的一项数据?您真的使用了
repeatitems:false
数据格式吗?一般来说,使用
colModel
中的
jsonmap
属性可以非常轻松地解决问题。如果您确实使用了
repeatitems:false
数据格式,那么列中的
jsonmap:function(){return 0;}
将解决您的问题,但是
jsonReader的
id:“0”
属性似乎很奇怪。您使用哪个版本的jqGrid以及jqGrid的哪个分支?谢谢。。。这很有效。加载网格时,但单击以编辑值时。它显示数据库的值。我不想展示这个。有办法吗。当我点击单元格时,它仍然会显示0而不是数据库值?这不是你说的“当我编辑里程值时,它应该映射到我对象中的里程”吗?你能给我澄清一下吗。您希望何时使用数据库值?让它更清楚,然后我会更新我的答案。在屏幕上我不想要数据库值。当用户输入以英里为单位的值,我将保存时,它应该与数据库中的“英里”列进行映射。所以无论发生什么情况,网格都将以英里为单位显示0?或者初始加载时是否显示0,但当用户编辑里程单元格时,应将其保存到db,并应显示里程的编辑值?因此,当首先加载网格时,它将显示0,然后当用户输入值时,它应保留输入值,当用户单击“保存”时,此值应保存在数据库中的“英里数”列中。当前,当加载数据时,网格的列显示为0,当我单击以编辑它时,它显示数据库值。我不想在单击进行编辑时显示该值。
var mileformatter= function (cellval, options, rowObject) {
   return "<span data-val='"+cellval+"'>0</span>";
    }

    var mileUnFormat= function (cellvalue, options, cell) {
          return  $('span', cell).attr('data-val');
    }
            "use strict";
            var mydata = [
                    {ID:"1", Year: "1933", Make: "Nissan",Model:"Model1", Color: "White",Miles:1222},
                    {ID:"2", Year: "2008", Make: "Toyota",Model:"Model2" , Color: "Gray",Miles:3000},
                ];
            $("#list").jqGrid({
      data: mydata,
    datatype: "local",
    mtype: 'Get',
    colModel: [
        { key: true, hidden: true, name: 'ID', index: 'ID' },
         { key: false, name: 'Year', index: 'Year', editable: false },
        { key: false, name: 'Make', index: 'Make', editable: false },
        { key: false, name: 'Model', index: 'Model', editable: false },
        { key: false, name: 'Color', index: 'Color', editable: false },
       { key: false, formatter:mileformatter,unformat:mileUnFormat, name: 'Miles', index: 'Miles', editable: true, cellvalue: "" },
    ],
      pager: jQuery('#pager'),
    rowNum: 10,
    rowList: [10, 20, 30, 40],
    height: '100%',
    viewrecords: true,
    caption: 'Log List',
    emptyrecords: 'No Records',
    jsonReader: {
        root: "rows",
        page: "page",
        total: "total",
        records: "records",
        repeatitems: false,
        id: "0"
    },
    autowidth: true,
    multiselect: false,
    onSelectRow: function (id) {

             jQuery('#list').editRow(id, true);
             }


});
var onEdit=false;

var mileformatter= function (cellval, options, rowObject) {
if(onEdit==true)
{
return cellval;
onEdit=false;
}
   return 0;
    }

            "use strict";
            var mydata = [
                    {ID:"1", Year: "1933", Make: "Nissan",Model:"Model1", Color: "White",Miles:1222},
                    {ID:"2", Year: "2008", Make: "Toyota",Model:"Model2" , Color: "Gray",Miles:3000},
                ];
            $("#list").jqGrid({
      data: mydata,
    datatype: "local",
    mtype: 'Get',
    colModel: [
        { key: true, hidden: true, name: 'ID', index: 'ID' },
         { key: false, name: 'Year', index: 'Year', editable: false },
        { key: false, name: 'Make', index: 'Make', editable: false },
        { key: false, name: 'Model', index: 'Model', editable: false },
        { key: false, name: 'Color', index: 'Color', editable: false },
       { key: false, formatter:mileformatter, name: 'Miles', index: 'Miles', editable: true, cellvalue: "" },
    ],
      pager: jQuery('#pager'),
    rowNum: 10,
    rowList: [10, 20, 30, 40],
    height: '100%',
    viewrecords: true,
    caption: 'Log List',
    emptyrecords: 'No Records',
    jsonReader: {
        root: "rows",
        page: "page",
        total: "total",
        records: "records",
        repeatitems: false,
        id: "0"
    },
    autowidth: true,
    multiselect: false,
    onSelectRow: function (id) {

             jQuery('#list').editRow(id, 
          {
                "keys": true,          
                oneditfunc: function () {

                },

                "successfunc": function () {
               alert('successfunc');
                },
                "url": null,
                "extraparam": {},
                "aftersavefunc": function () {
               alert('aftersavefunc');
                },
                "errorfunc": null,
                "afterrestorefunc": null,
                "restoreAfterError": true,
                "beforeSaveRow": function (options, rowid) {
                onEdit=true;
              jQuery("#list").saveRow(id, false);

                   return false;

                }
                });

       }


});
 saveparameters = {
        "successfunc" : null,
        "url" : "yoururl",
            "extraparam" : {},
        "aftersavefunc" : null,
        "errorfunc": null,
        "afterrestorefunc" : null,
        "restoreAfterError" : true,
        "mtype" : "POST"
    }

    jQuery("#grid_id").jqGrid('saveRow',rowid,  saveparameters);