【问题标题】:Binding KendoUI chart to database through webservice通过 Web 服务将 Kendo UI 图表绑定到数据库
【发布时间】:2012-03-13 14:03:49
【问题描述】:

我在通过 Web 服务将 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

我已经验证了我的网络服务返回了一个完整的数据集。 问题是当我运行代码时,图表没有被填充。事件日志中没有错误消息和触发事件。

我能找到的唯一问题是 web 服务返回的数据带有前导引号,如下所示:

"[{"Code":"1301","Count":239},{"Code":"1401","Count":178},{"Code":"1001","Count": 33}]"

当我将从 Web 服务返回的数据复制到 .json 文件中并将图表绑定到该文件时,它工作正常。但是,我必须删除前导引号和尾引号才能使其正常工作。

如何让我的网络服务以正确的 JSON 格式返回我的数据?

谢谢。

【问题讨论】:

  • 开发人员工具对 JSON 调用有何看法?是否返回 application/json 的结果?

标签: asp.net json web-services kendo-ui


【解决方案1】:

也许这样:

Return Mid(serializedReturnData, 2, Len(serializedReturnData) - 2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多