したがって、Kendo が提供する外部データ ソースを使用する例に従いました。何らかの理由で、Default.aspx/GetEvents の URL を入力すると (ここで、GetEvents は Default.aspx の Web メソッドです)、代わりに Default.aspx の HTML 全体が返されます。通常の AJAX 呼び出しで webmethod を呼び出すだけです。
だから私はそれを回避する方法を見つけ、javascript 関数を呼び出すローカル データ ソース メソッドを使用します。
ここに私のコードがあります
$(document).ready(function () {
$("#grid").kendoGrid({
dataSource: {
data: createRandomData(),
schema: {
data: "d"
},
pageSize: 10
},
height: 250,
scrollable: true,
sortable: true,
filterable: true,
pageable: {
input: true,
numeric: false
},
columns: [
{
field: "Title",
title: "Title",
width: 100
},
{
field: "StartDate",
title: "StartDate",
width: 100
},
{
field: "Keywords",
width: 100
}
]
});
});
これが createRandomData() が返すものの始まりです-それは有効なjsonです-すべてを貼り付けて、この質問を読めなくしたくないだけです
"d" : [
{
"Title": "Chicago BlackHawks vs. Detroit Redwings",
"StartDate": "9/7/2012 12:00:00 AM",
"Keywords": "-- Select --"
},
{
"Title": "",
"StartDate": "1/1/1900 12:00:00 AM",
"Keywords": "-- Select --"
}, .......
これが機能しない理由はわかりません。現在、グリッドには「読み込み中...」と表示され、コンソールエラーは発生しません。
function createRandomData() {
$.ajax({
type: "POST",
url: "MyEvents.aspx/GetEvents",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var rs = msg;
return rs;
}
});
return false;
}