KendoUI远程数据源:为url参数指定javascript变量中的值

时间:2012-12-26 14:24:35

标签: kendo-ui

我正在使用KendoUI从远程数据源创建图表,该数据源是JSON文件。 当我为url参数(在数据源对象内)分配一个远程路径时,指向JSON的图表不会出现。

说赞,

var myVar="some remote url"; 

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

另一方面,如果我直接将网址指定为:

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

我可以看到正在显示的图表。

我无法弄清楚我做错了什么。

2 个答案:

答案 0 :(得分: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),然后使用生成的DataSource

检查差异或在jsfiddle或jsbin中尽可能完整地发布代码。

答案 1 :(得分:0)

好吧,你的解决方案对我有用,但方式不同。我从.cs文件中获取url值并存储在javascript变量中。 var URL =“&lt;%= myCSvariable%&gt;”;

但仅此一点不起作用...... :( 我不得不修改URL变量值为, var completeURL =“\”“+ URL +”\“”;

然后将dataSource对象创建为,

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"
             }
         }


 });

我知道它的STRANGE,但这对我有用.. 无论如何,非常感谢.. :))