Kendo UI网格小部件XML数据源内容未显示

时间:2016-06-11 13:19:03

标签: xml kendo-ui kendo-grid

我对剑道的东西有点了解,因此我正在寻求你的帮助。 我正在尝试使用xml数据显示一个kendo网格。但是网格的行显示为空。我正在尝试从URL(http://demos.kendoui.com/service/Northwind.svc/Products)获取数据并在kendo小部件上设置数据源。一旦我运行样本 (http://jsfiddle.net/visibleinvisibly/c3qsdjq0/19/)它显示空格。我相信这种情况正在发生,因为我无法在数据源的“schema”对象中设置“data”属性。我不想在这个示例中使用json

以下是示例Xml数据

<feed xml:base="http://demos.telerik.com/kendo-ui/service/Northwind.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
    .............................
    ...........................
  <entry>
   ..................
    ....................
    <content type="application/xml">
      <m:properties>
        <d:ProductID m:type="Edm.Int32">1</d:ProductID>
        <d:ProductName>Chai</d:ProductName>
        <d:UnitPrice m:type="Edm.Decimal">18.00</d:UnitPrice>    
      </m:properties>
    </content> 
     </entry>
  </feed>

架构中的data属性设置如下

schema: {
 type: "xml",
 data: "/feed/entry/content/properties",
 model: {
         fields: {
            ProductID: "ProductID/text()",
            ProductName: "ProductName/text()",
            UnitPrice: "UnitPrice/text()"
         }
     }
 }

提前致谢,

亚历克斯。

1 个答案:

答案 0 :(得分:0)

@Alex-以下是我的分析 -

第1点 - 未显示数据

当我尝试在chrome中运行你的jsfiddle示例(http://jsfiddle.net/visibleinvisibly/c3qsdjq0/19/)时,我在控制台中得到以下错误 -

"XMLHttpRequest cannot load http://demos.kendoui.com/service/Northwind.svc/Products?take=10&skip=0&page=1&pageSize=10. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access."

enter image description here

这清楚地表明了为什么内容不会显示在您的Kendo UI网格中。

第2点 - 使用XML

我尝试使用AngularJS使用XML类型,我得到了以下错误 -

"Unknown DataSource transport type 'xml'.
Verify that registration scripts for this type are included after Kendo UI on the page."

enter image description here

我相信,这意味着它们是XML,因为不能使用数据源传输类型。您将不得不依赖JSON或ODaata。

希望这会有所帮助!

干杯 SANKET