Привязка графика KendoUI к базе данных через веб-сервис - PullRequest
0 голосов
/ 13 марта 2012

У меня возникли проблемы с привязкой диаграммы 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?

Спасибо.

1 Ответ

0 голосов
/ 14 марта 2012

Может быть, так:

Return Mid(serializedReturnData, 2, Len(serializedReturnData) - 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...