Kendo ui 在剑道图中的图表中显示所有周日?
我试图实现以下行为:Kendo ui 在剑道图中的图表中显示所有周日?,kendo-ui,Kendo Ui,我试图实现以下行为: @*Sample Data:*@ var _data=[{"weight":149.91,"createddate":"8/1/2014"}, {"weight":0.000000000000000001,"createddate":"8/2/2014"}, {"weight":200,"createddate":"8/3/2014"}, {"weight":0.000000000000000001,"
@*Sample Data:*@
var _data=[{"weight":149.91,"createddate":"8/1/2014"},
{"weight":0.000000000000000001,"createddate":"8/2/2014"},
{"weight":200,"createddate":"8/3/2014"},
{"weight":0.000000000000000001,"createddate":"8/4/2014"}]
$("#kk").kendoChart({
dataSource: {
data:_data
},
seriesColors: ["Red"],
seriesDefaults: {
type: "column",
},
series: [{
name: "weight",
field: "weight",
categoryField: "createddate",
}],
categoryAxis: {
type: "date",
baseUnit: "days",
labels: {
rotation: -45,
dateFormats: {
days: "ddd"
}
},
}
});
但我的图表如下所示。它在json数组中只有一条记录
即使一周中有几天没有数据,我也需要显示第一张图中的工作日
这是一个解决方法,可以获取不显示任何值的日期。解决方法是将没有权重值的日期的权重设置为0.000000000000000001。此外,我还将category baseunit更新为days,并为您添加了一些示例数据,以便您可以查看它的外观。当您返回JSON标记时,可以将0.000000000000000001放在值为0的日期上。代码如下:
@*Sample Data:*@
var _data=[{"weight":149.91,"createddate":"8/1/2014"},
{"weight":0.000000000000000001,"createddate":"8/2/2014"},
{"weight":200,"createddate":"8/3/2014"},
{"weight":0.000000000000000001,"createddate":"8/4/2014"}]
$("#kk").kendoChart({
dataSource: {
data:_data
},
seriesColors: ["Red"],
seriesDefaults: {
type: "column",
},
series: [{
name: "weight",
field: "weight",
categoryField: "createddate",
}],
categoryAxis: {
type: "date",
baseUnit: "days",
labels: {
rotation: -45,
dateFormats: {
days: "ddd"
}
},
}
});
请对此进行查看,以查看输出,因此您只需将端点附加到数据数组中即可。您可以在返回数据的控制器中或稍后使用JavaScript执行此操作(这将导致您重新绘制图表,除非您在将数据放入图表之前捕获到数据) 您需要像其他数据一样创建一个Json对象数组。可能看起来像这样。startDate和endDate是您选择的范围
function endPoints(){
return [{createddate:startDate,weight:0},{createddate:endDate,weight:0}];
}
您可以使用类似这样的内容附加这些数据点
function addDataToChart(data) {
var ds = $('#kk').data('kendoChart').dataSource;
ds.data($.merge(data, endPoints()));
//You can use ds.data() if you want to use the data that is already in the chart
}
$.ajax({
url:'URLtoReturnData'
dataType:'json',
success:function(data){addDataToChart(data);},
error:function(e){errorHandler(e);}
});
在我自己的仪表板项目中,我将使用自己的Ajax调用获取数据,并在将数据放入图表之前附加端点。完整的ajax函数可以如下所示
function addDataToChart(data) {
var ds = $('#kk').data('kendoChart').dataSource;
ds.data($.merge(data, endPoints()));
//You can use ds.data() if you want to use the data that is already in the chart
}
$.ajax({
url:'URLtoReturnData'
dataType:'json',
success:function(data){addDataToChart(data);},
error:function(e){errorHandler(e);}
});
我希望这能有所帮助。你能显示你的标记和JSON吗?@Andrew:用Fiddle的链接更新了我的问题,但在我的示例中,JSON数组中只有一条记录。那么你想显示一周中的所有其他日子吗?准确地说,即使那天的数据丢失(例如:sun、mon等)我想在JSON中的Axis类别中显示它们,而不是获取createddate,您可以获取日期,即Wed。如果您可以更新它,那么您可以在分类轴中将周天数设置为静态,等等,我将为您提供一个更新的JSFIDLE。