You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Telerik ASP.NET MVC UI StockChart自动添加非数据源日期?

问题

我使用Telerik ASP.NET MVC UI的标准StockChart,功能正常,但图表会自动生成数据源中不存在的日期以维持刻度间隔。我已尝试所有分类参数并查阅Telerik官方文档,仍未找到解决方法,请问如何阻止该行为?

现有代码

@(Html.Kendo().StockChart<IATradeBLL.Model.TestResearchStockPriceHistory>
  (Model.TestResearchStockPriceHistories.Take(30))
  .Name("stockChart")
  .Title(@Model.TestResearchStock.Ticker)
  .DataSource(dataSource => dataSource
    .ServerOperation(false))
  .DateField("PriceDate")
  .SeriesColors(new string[] {
    "",
    "GREEN"
  })
  .Series(series => {
    series.Candlestick(s => s.PriceOpen, s => s.PriceHigh, s => s.PriceLow, s => s.PriceClose, s => s.UpPrice, s => s.DownPrice);
    series.Line(s => s.EMANine);
  })
  .Navigator(nav => nav
    .Series(series => {
      series.Bar(s => s.Volume);
    })
  )
)
解决方法

Telerik StockChart默认会对日期轴进行连续插值生成额外日期,要禁用该行为,需给日期轴配置BaseUnitStep(BaseUnitStep.Fit),强制轴仅显示数据源中存在的日期。

修改后的完整代码

@(Html.Kendo().StockChart<IATradeBLL.Model.TestResearchStockPriceHistory>
  (Model.TestResearchStockPriceHistories.Take(30))
  .Name("stockChart")
  .Title(@Model.TestResearchStock.Ticker)
  .DataSource(dataSource => dataSource
    .ServerOperation(false))
  .DateField("PriceDate")
  // 添加分类轴配置,禁用自动生成日期
  .CategoryAxis(axis => axis
    .BaseUnitStep(BaseUnitStep.Fit) // 自适应匹配现有数据点,不生成额外日期
    .Labels(labels => labels.Rotation(-45)) // 可选:旋转标签避免重叠
  )
  .SeriesColors(new string[] {
    "",
    "GREEN"
  })
  .Series(series => {
    series.Candlestick(s => s.PriceOpen, s => s.PriceHigh, s => s.PriceLow, s => s.PriceClose, s => s.UpPrice, s => s.DownPrice);
    series.Line(s => s.EMANine);
  })
  .Navigator(nav => nav
    .Series(series => {
      series.Bar(s => s.Volume);
    })
  )
)

进阶配置(可选)

若需完全确保每个数据点对应一个刻度,可添加MajorTicks配置:

.CategoryAxis(axis => axis
  .BaseUnitStep(BaseUnitStep.Fit)
  .MajorTicks(ticks => ticks.Step(1)) // 强制每个数据点显示一个刻度
  .Labels(labels => labels.Rotation(-45))
)

原理说明

BaseUnitStep.Fit会让图表根据数据源中实际存在的日期间隔调整刻度,不再自动填充缺失的日期,从而仅展示数据源内的有效日期。

内容的提问来源于stack exchange,提问作者James Walls

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:35:06