我的剑道图表数据在页面加载时无法正常显示

时间:2013-03-05 07:36:30

标签: javascript visual-studio-2010 kendo-ui

我的应用程序中有 kendo grid kendo chart 。我正在使用图形和网格的共享数据源。我的问题是页面加载网格显示所有数据,但图表只显示一些数据。

我的图表代码:

$("#Chart").kendoStockChart({
    theme         : $(document).data("kendoSkin") || "metro",
    dataSource    : DataSource,
    autoBind      : false,
    legend        : {
        position: "right", visible: true
    },
    dateField     : "date",
    seriesDefaults: { type: "line" },
    series        : [
        {
            field: "value",
            name : "value"
        }
    ],
    valueAxis: [
        {
            max    : 5.0,
            min    : 0,
            labels : {
                format: "{0}"
            },
            tooltip: { visible: true, format: "{0}" }
        }
    ],
    navigator: {
        series: [
            { field: "item", type: "area"}
        ]
    }
});

1 个答案:

答案 0 :(得分:2)

更新到较新版本的Kendo UI v2012.3.1315。

<script src="http://cdn.kendostatic.com/2012.3.1315/js/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2012.3.1315/js/kendo.all.min.js"></script>
<link href="http://cdn.kendostatic.com/2012.3.1315/styles/kendo.common.min.css" rel="stylesheet"/>
<link href="http://cdn.kendostatic.com/2012.3.1315/styles/kendo.default.min.css" rel="stylesheet"/>
<link href="http://cdn.kendostatic.com/2012.3.1315/styles/kendo.dataviz.default.min.css" rel="stylesheet"/>

修改: 如果您在两个Kendo UI小部件之间共享一个DataSource,那么您将共享每个选项,其中包括pageSize。因此,要么在grid中显示所有结果,要么只显示chart中页面中的那些项目。

我建议分享 DataSource的结果(内容),而不是共享。我的意思是:

  1. 正如您现在所做的那样定义DataSourceGridChart
  2. dataSource中的Grid的值替换为undefined
  3. 添加共享 DataSource定义change事件,将数据分配给Grid.dataSource
  4. 这样的事情:

    var sharedDataSource = new kendo.data.DataSource({
        type     : "odata",
        transport: {
            read: "http://demos.kendoui.com/service/Northwind.svc/Orders"
        },
        schema   : {
            model: {
                fields: {
                    OrderDate: { type: "date" }
                }
            }
        },
        change   : function (e) {
            grid.dataSource.data(e.items);
        }
    });
    

    检查此处运行的代码:http://jsfiddle.net/OnaBai/5bchz/