我在这里查看了一个示例Kendo grid,另一个on Codeproject和一个帖子on this site,但我似乎没有找到错误。我对javascript或HTML知之甚少,所以我认为这对我来说是一个简单的错误。
这是我到目前为止的代码:
$(document).ready(function () {
var baseURL = "/api/LeaveTypes",
leaveTypes = new kendo.data.DataSource({
autoSync: true,
transport: {
read: {
url: baseURL + "?getAll=true",
dataType: "jsonp",
type: "GET"
},
update: {
url: baseURL,
dataType: "jsonp",
type: "POST"
},
parameterMap: function (options, operation) {
if (operation !== "read" && options.models) {
return { models: kendo.stringify(options.models) };
}
}
},
schema: {
model: {
id: "Id",
fields: {
Id: {type: "number", editable: false, validation: { required: true } },
Description: { type: "string", editable: false, validation: { required: true } },
IsEssLeaveType: { type: "boolean", editable: true, },
ColourRGB: {type: "string", editable: true, nullable: true }
}
}
}
});
$(".leavetypesgrid").kendoGrid({
dataSource: leaveTypes,
toolbar: ["save"],
columns: [{
field: "Id",
title: "Leave Type ID"
}, {
field: "Description",
title: "Leave Type"
}, {
field: "IsESSLeaveType",
template: '<input type="checkbox" #= IsESSLeaveType ? "checked=checked" : "" # ></input>',
title: "Flagged for ESS",
}, {
field: "ColourRGB",
title: "Colour"
}
],
scrollable: false,
editable: {
update: true
}
});
});
我试图让它在JSFiddle中运行,但由于我对它很陌生,我仍然在努力让数据源与我目前正在使用的控制器断开连接用网格填充网格,并将其连接到样本数据。
这是Controller的Post方法:
public SimpleResult Post(List<LeaveCalendarLeaveType> leaveTypesList)
{
return ESSLeaveDataManager.SaveLeaveTypes(leaveTypesList);
}
任何帮助将不胜感激! :)
答案 0 :(得分:0)
我注意到的第一件事是您定义了两个数据源。一个叫dataSource
,另一个叫leaveTypes
。您只需将网格上的数据源设置为leaveTypes
。
答案 1 :(得分:0)
您是否配置了MVC路由,以便在调用/api/LeaveTypes
时转到名为Post()的操作?否则,url
配置的update
应为/api/LeaveTypes/Post