2013-03-28 21 views
2

我在我的应用程序中有剑道图和树视图。我想在复选框选中事件时动态更改数值轴,示例当我们在树视图中选中“KM”复选框时那么Km的数值轴和数据将显示在图表中。我的剑道图并未更新

所以我尝试了一些代码,然后我的图表不显示。 我检查事件代码是

$("#treeview").on("change", function (e) { 
    var chart = $("#chart").data("kendoChart"); 

    var checkedSeries = []; 

    $("#treeview").find(":checked").each(function() { 
     var nodeText = $(this).parent().parent().text(); 

     $.each(valueAxes, function(index, valueAxes) { 
      if (valueAxes.field == nodeText) { 
       checkedSeries.push(valueAxes); 
      } 
     }); 
    }); 

    chart.options.valueAxes = checkedSeries; 
    chart.refresh(); 
}); 

什么是错在我的代码,请帮助我。 这是我的jsbin http://jsbin.com/eyibar/11/edit

+0

你好,我试图显示一个图表,但价值轴没有改变点击事件这里是jsbin http://jsbin.com/eyibar/12/edit – deeksha 2013-03-28 05:02:08

回答

1

首先,您需要将图表分配给树视图的按变化事件事件中的变量,而不是树视图无法识别图表并且它是数值轴,并且在您的valueAxes代码没有字段的属性,所以通过valueAxes的名称,您需要检查treeview节点,然后推送valueAxes。

$("#treview").on("change", function (e) { 
       var chart = $("#chart").data("kendoChart"); 
       var checkedSeries = []; 
       if ($("#treeview").find(":checked").length !== 0) { 
        $("#treeview").find(":checked").each(function() { 
         var nodeText = $(this).parent().parent().text(); 
         $.each(valueAxes, function (index, valueAxes) { 
          if (valueAxes.name == nodeText) { 
           checkedSeries.push(valueAxes); 
           checkedSeries.visible = true; 
          } 
         }); 
        }); 
        createChart(checkedSeries); 
       } 
       else { 
        createChart(checkedSeries); 
       } 
      });