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

Syncfusion图表无数据线条显示问题求助(Blazor环境)

解决Blazor Syncfusion图表数据线条不显示的问题

问题分析

你的图表框架(标题、轴、网格)显示正常,但数据线条未渲染,核心原因是数据源绑定方式及组件配置细节问题。

修复步骤

1. 将数据源从字段改为属性

Syncfusion Blazor组件对属性绑定的兼容性更强,把SentMessages从字段改为属性并在初始化方法中赋值:

@code {
    public class SeriesType
    {
        public string SeriesDate { get; set; }      
        public double SeriesYValue { get; set; }
    }

    // 改为属性形式
    public List<SeriesType> SentMessages { get; set; }

    protected override void OnInitialized()
    {
        SentMessages = new List<SeriesType>
        {
            new SeriesType {SeriesDate="8/1/2023", SeriesYValue=4023},
            new SeriesType {SeriesDate="8/2/2023", SeriesYValue=2123},
            new SeriesType {SeriesDate="8/3/2023", SeriesYValue=1823},
            new SeriesType {SeriesDate="8/4/2023", SeriesYValue=2423},
            new SeriesType {SeriesDate="8/5/2023", SeriesYValue=923}
        };
    }
}

2. 取消Y轴配置注释并明确类型

显式配置Y轴可避免潜在的类型匹配问题,确保与数据类型一致:

<ChartPrimaryYAxis Title="Messages" ValueType="Syncfusion.Blazor.Charts.ValueType.Double"></ChartPrimaryYAxis>

3. 显式设置系列可见性(可选)

添加Visible="true"确保数据系列默认处于显示状态:

<ChartSeries DataSource="@SentMessages" XName="SeriesDate" YName="SeriesYValue" Type="ChartSeriesType.Line" Visible="true">
</ChartSeries>

4. 确认Syncfusion服务注册

检查Program.cs中是否已注册Syncfusion Blazor服务,这是组件正常运行的前提:

builder.Services.AddSyncfusionBlazor();

完整修复代码示例

@using Syncfusion.Blazor
@using Syncfusion.Blazor.Charts
@implements IDisposable

<div style="position:absolute; text-align:center; top:0px; left:0px; width:100%; height:100%; font-size:1.2vh;">
    <div style="height:60%;">
        <SfChart Title="Messages Sent/Received">

            <ChartPrimaryXAxis Title="Time Interval" ValueType="Syncfusion.Blazor.Charts.ValueType.Category"></ChartPrimaryXAxis>
            <ChartPrimaryYAxis Title="Messages" ValueType="Syncfusion.Blazor.Charts.ValueType.Double"></ChartPrimaryYAxis>
            <ChartTooltipSettings Enable="true"></ChartTooltipSettings>
            <ChartSeriesCollection>
                <ChartSeries DataSource="@SentMessages" XName="SeriesDate" YName="SeriesYValue" Type="ChartSeriesType.Line" Visible="true">
                </ChartSeries>
            </ChartSeriesCollection>

        </SfChart>
    </div>
</div>

@code {
    public class SeriesType
    {
        public string SeriesDate { get; set; }      
        public double SeriesYValue { get; set; }
    }

    public List<SeriesType> SentMessages { get; set; }

    protected override void OnInitialized()
    {
        SentMessages = new List<SeriesType>
        {
            new SeriesType {SeriesDate="8/1/2023", SeriesYValue=4023},
            new SeriesType {SeriesDate="8/2/2023", SeriesYValue=2123},
            new SeriesType {SeriesDate="8/3/2023", SeriesYValue=1823},
            new SeriesType {SeriesDate="8/4/2023", SeriesYValue=2423},
            new SeriesType {SeriesDate="8/5/2023", SeriesYValue=923}
        };
    }

    public void Dispose()
    {
        // 实现Dispose方法避免内存泄漏
    }
}

内容的提问来源于stack exchange,提问作者Greg W

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:05:27