我知道已经有很多这样的了。但是,我已经尝试了几十个 SO 帖子/论坛/Kendo UI 站点,但仍然无法正常工作。我已经走到了尽头,任何帮助将不胜感激。
这是我的数据源声明:
var dataSource = new kendo.data.DataSource({
transport: {
read: function(options) {
$.ajax( {
type: "POST",
url: "DepartmentHome.aspx/GetMembers",
data: options.data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
options.success(msg.d);
alert(msg.d);
}
});
}
},
pageSize: 20,
schema: {
model: {
fields: {
FirstName: { validation: { required: true} },
LastName: { validation: { required: true} }
}
}
}
});
这是我使用数据源的网格声明:
$("#grid").kendoGrid({
dataSource: dataSource,
scrollable: true,
groupable: false,
sortable: true,
pageable: {
refresh: true,
pageSizes: true
},
height: 430,
toolbar: ["create"],
columns: [
{ field: "FirstName", title: "First Name", width: "100px" },
{ field: "LastName", title: "Last Name", width: "100px" },
{ command: ["edit", "destroy"], width: "160px" }
],
editable: {
mode: "popup",
confirmation: "Are you sure?"
}
});
这是我在数据源声明中调用的 WebMethod 背后的代码:
[WebMethod]
public static string GetMembers()
{
var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(new { FirstName = "John", LastName = "Smith" });
return json;
}
我知道它正在访问 WebMethod,因为我在数据源中放置的警报显示了正确的数据:
使用 firebug 的响应标头如下所示:
实际响应如下所示:
然而,网格不显示它看起来像这样的数据:
注意:由于某种原因,网格认为它在右下角有 39 个项目。
我错过了一些明显的东西吗?有没有更简单的方法来做到这一点?