У меня возникли проблемы с привязкой диаграммы KendoUI к удаленной базе данных через веб-службу.
Вот мой код:
$("#chart").kendoChart({
theme: $(document).data("kendoSkin") || "default",
dataSource: {
transport: {
read: {
url: "/WebServices/WebFunctions.asmx/RetrieveProjectCountByBMP",
dataType: "json"
}
},
schema: {
model: {
fields: {
Code: { type: "string" },
Count: { type: "number" }
}
}
},
sort: {
field: "Code",
dir: "asc"
}
},
title: {
text: "Project Count by BMP"
},
seriesDefaults: {
type: "column"
},
series: [{
field: "Count",
name: "Project Count"
}],
categoryAxis: {
field: "Code"
},
tooltip: {
visible: true,
format: "{0:N0}"
}
});
, а вот код веб-службы:
<WebMethod(EnableSession:=True)> _
Public Function RetrieveProjectCountByBMP() As Object
Dim returnData = (From p As Project In Project.RetrieveAll() _
Join cs As ClaimScope In ClaimScope.RetrieveAll() On p.ProjectId Equals cs.ProjectId _
Join b As BMP In BMP.RetrieveAll On cs.BMPId Equals b.BMPId _
Where (p.ProjectMilestoneId = 17 Or p.ProjectMilestoneId = 18 Or p.ProjectMilestoneId = 19) _
And p.FiscalyearId = 5 _
Select b.Code, p.ProjectId).GroupBy( _
Function(bmpCode) bmpCode.Code _
, Function(proj) proj.ProjectId _
, Function(bmpCode, projects) New With {.Code = bmpCode, .Count = projects.Count()})
Dim serializedReturnData As JavaScriptSerializer = New JavaScriptSerializer(returnData)
Return serializedReturnData.Serialize(serializedReturnData)
Return serializedReturnData
End Function
Я подтвердил, что мой веб-сервис возвращает полный набор данных.Проблема в том, что когда я запускаю код, диаграмма не заполняется.В журнале событий нет ни сообщений об ошибках, ни событий.
Единственная проблема, которую я могу найти, заключается в том, что веб-служба возвращает данные с ведущими конечными кавычками, например:
"[{ "Код": "1301", "граф": 239}, { "Код": "1401", "граф": 178}, { "Код": "1001", "граф": 33}] "
Когда я копирую данные, возвращенные веб-службой, в файл .json и привязываю к нему диаграмму, все работает нормально.Однако я должен удалить ведущие и конечные кавычки, чтобы заставить его работать.
Как мне заставить мой веб-сервис возвращать мои данные в правильном формате JSON?
Спасибо.