2012-03-13 30 views
0

我在通过web服务将KendoUI图表绑定到远程数据库时遇到了一些麻烦。通过webservice绑定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}" 
    } 
}); 

,这里是Web服务代码:

<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服务返回一个完整的数据集。 问题是,当我运行代码时,图表没有被填充。没有错误消息,也没有事件日志中触发的事件。

我能找到的唯一的问题是,web服务返回与领先尾随引号,像这样的数据:

“[{”编码“:” 1301" ,‘伯爵’:239},{”代码 “:” 1401" , “伯爵”:178},{ “编码”: “1001”, “伯爵”:33}]”

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

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

谢谢。

+0

做什么开发工具的JSON通话说什么?它是否返回application/json的结果? – 2012-03-30 14:10:27

回答

0

也许是这样的:

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