2012-12-26 85 views
0

我使用KendoUI從JSON文件的遠程數據源創建圖表。 當我將url參數(在數據源對象內)分配給遠程路徑時,指向JSON時不會顯示圖表。KendoUI遠程數據源:爲javascript變量賦值url參數值

說喜歡,

var myVar="some remote url"; 

dataSource: { 
    transport: { 
    read: { 
     url: myVar, 
     dataType: "json" 
    } 
    } 
} 

在另一方面,如果我直接指定網址爲:

url: "http://myserver-name/somefile.json" 

我可以看到正在顯示的圖表。

我搞不​​清楚我做錯了什麼。

回答

0

它應該工作!檢查在jsfiddle上運行的以下內容。

var url = "http://demos.kendoui.com/service/Products"; 
var dataSource = new kendo.data.DataSource({ 
    transport: { 
     read: { 
      url: url, 
      dataType: "jsonp" 
     } 
    }, 
    pageSize: 4, 
    schema: { 
     model: { 
      id: "ProductID", 
      fields: { 
       ProductID: { 
        editable: false, 
        nullable: true 
       }, 
       ProductName: "ProductName" 
      } 
     } 
    } 
}); 

$("#kendogrid").kendoGrid({ 
    dataSource: dataSource, 
    columns: [ 
     { 
      field: "ProductID", 
      title: "ID"}, 
     { 
      field: "ProductName", 
      title: "Name"} 
    ] 
});​ 

而這是HTML:

<div id="kendogrid"></div>​ 

它定義一個外部的URL,並將其設置到一個變量(url),然後使用所得到的DataSource

檢查差異或在jsfiddle或jsbin中儘可能完整地發佈代碼。

0

好吧,您的解決方案爲我工作,但以不同的方式。我從一個.cs文件獲取url值並存儲在一個JavaScript變量中。 var URL =「<%= myCSvariable%>」;

但僅僅犯規工程... :( 我不得不modifiy的URL變量的值, VAR completeURL = 「\」 「+ URL + 」\「」;

,然後創建數據源對象如,

var mydataSource = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url: URL, // this is the tricky part. Using 'completeURL'   here doesnt creates my chart , instead 'URL' works just fine. 
       dataType: "json" 
      } 
     } 


}); 

我知道它很奇怪,但就是這樣如何爲我工作.. 不管怎麼說,由於一噸.. :)