在我的MVC jqgrid代码中,colnames和colmodel返回相同长度的col。但是当运行应用程序时,我收到此错误。有什么帮助吗?
代码:
public WeekColumns GetWeekColumns(DateTime start, DateTime end)
{
WeekColumns week = new WeekColumns();
string sWeekDate = string.Empty;
var model = db.GetWeek(start.ToString("MM/dd/yyyy"),
end.ToString("MM/dd/yyyy")).ToList().Select(s => s.WeekDate.ToString());
IEnumerable<string> sModel = new List<string>();
sModel = model;
string sColumnNames = "['ID', 'Account', 'Lob'";
foreach (string item in sModel)
sColumnNames += ", 'C" + item.ToString().Replace("/", "_").Trim() + "'";
sColumnNames += ", 'Report']";
string sColumnModels = "[{ name: 'ID', key: true, hidden: true }, ";
sColumnModels += "{ name: 'Account', width: 150, align: 'center' }, ";
sColumnModels += "{ name: 'Lob', width: 150, align: 'center' }";
foreach (string item in sModel)
sColumnModels += ", { name: 'C" + item.ToString().Replace("/", "_").Trim() +
"', width: 150, editable: true}";
sColumnModels += ", { name: 'Report', width: 150, align: 'center' }]";
week.ColumnName = sColumnNames;
week.ColumnModel = sColumnModels;
return week;
}
Run Code Online (Sandbox Code Playgroud)
js:
$.ajax({
url: "Staffing/GetWeekDate",
type: 'POST',
dataType: 'json',
contentType: "application/json",
cache: false,
success: function (data) {
$("#jqTable").jqGrid({
// Ajax related configurations
url: "Staffing/LOBStaffing",
datatype: "json",
mtype: "POST",
//ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
jsonReader: {
root: 'rows',
page: 'page',
total: 'total',
records: 'records',
repeatitems: true,
data: 'data'
},
// Specify the column names
colNames: data.ColumnName,
// Configure the columns
colModel: data.ColumnModel,
// Grid total width and height
width: 900,
height: 350,
sortname: 'Lob',
// Paging
rowList: [], // disable page size dropdown
pager: $("#jqTablePager"),
pgbuttons: false, // disable page control like next, back button
pgtext: null, // disable pager text like 'Page 0 of 10'
viewrecords: true,
rowNum: 2000,
grouping: true,
groupingView: {
groupField: ['Account', 'Lob'],
groupColumnShow: [true, true],
groupText: ['<b>{0}</b>'],
groupCollapse: false,
groupOrder: ['asc', 'asc'],
groupSummary: [true, true]
},
// Grid caption
caption: "List of Forms"
}).navGrid("#jqTablePager",
{
refresh: true,
add: false,
edit: false,
del: false,
search: false,
refreshtext: "Refresh",
searchtext: "Search"
},
{}, // settings for edit
{}, // settings for add
{}, // settings for delete
{multipleGroup: true }, // settings for search,
{
multipleGroup: true,
sopt: ["cn", "eq"],
caption: "Search",
Find: "Search"
}); // Search options. Some options can be set on column level
},
error: function () {
alert('error');
}
});
Run Code Online (Sandbox Code Playgroud)
的价值colNames和colModel应数组大小相同的项目。看来你当前的代码尝试分配字符串中包含的文字"['ID', 'Account', 'Lob', ...]"和"[{ name: 'ID', key: true, hidden: true }, ...]"。jqGrid的哪尝试比较的项目在数量的代码阵列 colNames和colModel(见这里)比较的长字符串,你作为值使用colNames和colModel。因此,显示的消息是正确的,但是您的输入数据仍然错误。
因此,要解决该问题,您必须修复and 的格式(更改类型)。data.ColumnNamedata.ColumnModel
例如,您可以替代'的data.ColumnName和data.ColumnModel来\"。它使字符串成为正确的JSON格式,您可以使用$.parseJSON()(我的意思是colNames: $.parseJSON(data.ColumnName), colModel: $.parseJSON(data.ColumnModel))。
| 归档时间: |
|
| 查看次数: |
6970 次 |
| 最近记录: |