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