2016-02-05 10 views
1

Я работаю с кэндо Chart, используя упаковщик MVC, которые мне нужно добавить ряд во время выполнения приложения на основе данных в моей моделиПочему мой Кендо Chart не показывает какие-либо данных, но серия, оказываемые в LEGEN

Я проверил, что моя модель не содержит достоверные данные, когда карта собирается быть оказано

модель вида не объект диаграммы виджета, который содержит список серий

Это просто список серий диаграммы

Бюджет Chart Widget

namespace STC.Widgets.Budgeting 
{ 
    using System; 
    using System.Collections.Generic; 
    using Budget; 
    using Extensions; 
    using Helpers; 

    public class BudgetChartWidget 
    { 
     public BudgetChartWidget() 
     { 
      SeriesList = new List<IBudgetChartSeries>(); 
     } 

     public List<IBudgetChartSeries> SeriesList { get; set; } 
     public string ChartTitle { get; set; } 
    } 
} 

**Budget Chart Series** 

namespace STC.Widgets.Data.Budgeting 
{ 
    using System.Collections.Generic; 

    public class BudgetChartSeries : IBudgetChartSeries 
    { 
     public BudgetChartSeries(string seriesName) 
     { 
      Values = new List<IChartValue>(); 
      SeriesName = seriesName; 
     } 

     public string SeriesName { get; set; } 

     public List<IChartValue> Values { get; set; } 
    } 
} 

Каждая серия диаграмма затем содержит значения

IChartValue

namespace STC.Widgets.Data.Budgeting 
{ 
    using System; 

    public interface IChartValue 
    { 
     string DisplayValue { get; set; } 
     DateTime Period { get; set; } 
     double? Value { get; set; } 
    } 
} 

Частичный вид на графике

@using STC.Widgets.Data.Budgeting 
@model STC.Widgets.Budgeting.BudgetChartWidget 

<div> 
    @(Html.Kendo().Chart(Model.SeriesList) 
      .Theme((string) ViewBag.ThemeName) 
      .Name("BudgetViewer" + 1)   
      .Series(series => 
      { 
       foreach (var item in Model.SeriesList) 
       { 
        series.Column(item.Values).Field("Value").CategoryField("DisplayValue").Name(item.SeriesName);          
       } 
      }) 
      .Legend(legend => legend.Position(ChartLegendPosition.Bottom).Visible(true)) 
      .ValueAxis(axis => axis.Numeric() 
       .MajorGridLines(lines => lines.Visible(true)) 
       .NarrowRange(true) 
       .Labels(labels => labels.Format("{0:N0}")) 
       .Line(line => line.Visible(true)) 
       .Crosshair(crosshair => crosshair.Visible(true) 
        .Tooltip(t => t.Visible(true))) 
     ) 
      .CategoryAxis(axis => axis 
       .Labels(labels => labels.Rotation(-90)) 
       .MajorGridLines(lines => lines.Visible(false)) 
       .Crosshair(crosshair => crosshair.Visible(true) 
        .Tooltip(t => t.Visible(true))) 
     ) 
      .Tooltip(tooltip => tooltip.Visible(true).Format("{0:N0}").Shared(true))) 
</div> 

Когда я запускаю это ряды показаны в нижних легендах, но никаких данных не показаны на графике

Я проверил и нет Javascript ошибки

Когда я использую Internet Explorer, чтобы просмотреть исходный код диаграммы I что данные есть

Я не вижу ничего плохого в том, как я создал каждую серию, я даже пробовал разные способы передачи параметров.

только один, который имеет отношение к моей ситуации это один я использую

Может кто-нибудь увидеть, если я пропустил что-то действительно очевидное, пожалуйста?

Пол

+0

Вы нашли что-нибудь для этого? – saulyasar

ответ

0

Я просто была аналогичная проблема, в моем случае график не был показан изначально, но когда я нажал на легенде диаграммы было показано, как и ожидалось. После осмотра кажется, что диаграмма не изменялась правильно.

<div class="chart-wrapper"> 
    @(Html.Kendo().Chart(...) 
    ..... 
</div> 

$(document).ready(function() {kendo.resize($(".chart-wrapper"));}); похоже исправить это.

 Смежные вопросы

  • Нет связанных вопросов^_^