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

Syncfusion Gantt调用API后显示“No records to display”的问题求助

Syncfusion Gantt调用API后显示“No records to display”的问题求助

嘿,我来帮你排查下这个问题!从你提供的代码和数据来看,主要有两个关键点可能导致Gantt不显示数据:

1. API返回的数据格式不符合Gantt的要求

Syncfusion Gantt的DataSource需要接收数组类型的数据集,但你的API返回的是单个对象。WebApiAdaptor默认会期望后端返回的是数组,或者是包含result字段(存数组)和count字段的结构,这样Gantt才能识别出要渲染的任务列表。

2. 缺少配置的ParentID字段

你在taskSettings里配置了parentID: "parentID",但返回的任务数据里并没有这个字段。Gantt依赖这个字段来构建任务层级,即使是根级任务,也需要parentID为null或者0来标识它是顶级任务。

给你几个可行的解决办法:

办法一:修改后端API返回数组

如果能调整后端接口,让它返回包含单个任务的数组,比如这样:

[
  {
    "actualTasksID": 18,
    "name": "Task",
    "description": "Curatare",
    "attachment": "Se vor curata tastele",
    "active": "isNotActive",
    "start_time": "2023-09-20T08:40:00",
    "end_time": "2023-09-27T08:40:00",
    "operator_id": 1,
    "workOrderID": 13,
    "workOrder": null,
    "operator": null,
    "parentID": null
  }
]

这样Gantt就能直接识别并渲染数据了。

办法二:前端处理数据格式(不用改后端)

如果没法修改后端,可以在DataManager里通过processResponse钩子把单个对象转换成数组,同时补上缺失的parentID:

public data: DataManager = new DataManager({
  url: 'https://localhost:7209/api/ActualTasks',
  adaptor: new WebApiAdaptor(),
  crossDomain: true,
  processResponse: (data: any) => {
    // 给单个任务补上parentID,标记为根任务
    data.parentID = null;
    // 把单个对象包装成数组,符合Gantt的要求
    return { result: [data], count: 1 };
  }
});

额外排查建议

打开浏览器的开发者工具,检查:

  • Network标签下,请求API的返回是否正确,有没有4xx/5xx的错误
  • Console标签下有没有Syncfusion相关的报错信息,这能帮你更快定位问题

试一下上面的方法,应该就能解决“No records to display”的问题啦!


备注:内容来源于stack exchange,提问作者Theodor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 12:58:01