【发布时间】:2013-01-20 13:15:59
【问题描述】:
我要做的是根据我页面上 KendoUI crid 的内容动态呈现图表。这发生在网格的 DataBound 事件中。当我尝试下面的代码时,似乎 gchart 的空间是在页面上分配的,但没有任何 rnders。我可以通过 Firebug 看到数据源数据在图表中。我还可以看到图表的图例将呈现但没有图表。我应该提到,没有模型传递给这个图表。我还尝试对测试数据进行硬编码并将我的数据源设置为该数据源,但仍然没有呈现图表。
function onDataBound(arg) {
gridDataSource = arg.sender.dataSource;
if (gridDataSource.group().length > 0) {
var theChart = $("#chart").data("kendoChart");
theChart.options.series[0].field = "VALVAL_ALT_CMB_AMT";
theChart.options.series[0].categoryField = "RCD_NUM";
theChart.options.series[0].data = gridDataSource._data;
theChart.refresh();
}
}
【问题讨论】:
-
我忘了添加 - 这是一个饼图
-
由于您对测试数据进行硬编码并将我的数据源设置为该数据源,但仍然没有渲染,如果您分享它对我们很有用。你能把 JSFiddle 或 JSBin 放进去吗?
-
感谢您的回复。我找到了问题的答案——我不能只将数据源从网格设置到图表。我需要首先创建一个新的数据源,然后将其中的数据属性设置为网格中的数据......然后在图表上设置数据源,它就起作用了...... var data = new kendo.data.DataSource( { data: gridDataSource. _数据,
-
@burke-holland 或剑道专家可以对此发表进一步评论,但我认为您不应该引用带有下划线(“_”)的属性。此语法应该表明属性/对象是私有变量。所以像这样的东西可能会更好:grid.dataSource.view(0);如果您正在对网格中的数据执行某些操作,那么这可能是不正确的。
-
感谢您的建议 - 我使用的是通过 Firebugging 找到的名称。可能应该使用文档中提供的名称。
标签: jquery kendo-ui grid datasource kendo-chart