Loading...
Loading...
Compare original and translation side by side
// ✅ REQUIRED - Must match data property name exactly
<TreeGridComponent
dataSource={data}
childMapping='subtasks'>
<ColumnsDirective>
{/* Columns */}
</ColumnsDirective>
</TreeGridComponent>
// ❌ WRONG - Will not work
<TreeGridComponent
dataSource={data}>
{/* No childMapping = No expansion possible */}
</TreeGridComponent>// ✅ CORRECT - childMapping matches 'subtasks' property
const data = [
{
TaskID: 1,
TaskName: 'Parent',
subtasks: [ // Must match childMapping value exactly
{ TaskID: 2, TaskName: 'Child' }
]
}
];idMappingparentIdMapping// Alternative: Flat structure with parent IDs
<TreeGridComponent
dataSource={flatData}
idMapping='TaskID'
parentIdMapping='ParentID'
hasChildMapping='isParent'>
</TreeGridComponent>// ✅ 必填 - 必须与数据属性名称完全匹配
<TreeGridComponent
dataSource={data}
childMapping='subtasks'>
<ColumnsDirective>
{/* 列定义 */}
</ColumnsDirective>
</TreeGridComponent>
// ❌ 错误 - 无法正常工作
<TreeGridComponent
dataSource={data}>
{/* 无childMapping = 无法展开 */}
</TreeGridComponent>// ✅ 正确 - childMapping与'subtasks'属性匹配
const data = [
{
TaskID: 1,
TaskName: '父任务',
subtasks: [ // 必须与childMapping值完全匹配
{ TaskID: 2, TaskName: '子任务' }
]
}
];idMappingparentIdMapping// 替代方案:带父ID的扁平结构
<TreeGridComponent
dataSource={flatData}
idMapping='TaskID'
parentIdMapping='ParentID'
hasChildMapping='isParent'>
</TreeGridComponent>// ✅ CORRECT - Type matches column definition
const data = [
{
TaskID: 1, // number type
TaskName: 'Planning', // string type
StartDate: new Date(), // Date object for date columns
}
];
// Column definition must match data types
<ColumnsDirective>
<ColumnDirective field='TaskID' headerText='ID' type='number'></ColumnDirective>
<ColumnDirective field='TaskName' headerText='Task' type='string'></ColumnDirective>
<ColumnDirective field='StartDate' headerText='Date' type='date' format='yMd'></ColumnDirective>
</ColumnsDirective>
// ❌ WRONG - Type mismatch
const data = [
{
TaskID: '1', // String instead of number
StartDate: '02/03/2024' // String instead of Date object
}
];// ✅ 正确 - 类型与列定义匹配
const data = [
{
TaskID: 1, // 数字类型
TaskName: '规划', // 字符串类型
StartDate: new Date(), // 日期列使用Date对象
}
];
// 列定义必须与数据类型匹配
<ColumnsDirective>
<ColumnDirective field='TaskID' headerText='ID' type='number'></ColumnDirective>
<ColumnDirective field='TaskName' headerText='任务' type='string'></ColumnDirective>
<ColumnDirective field='StartDate' headerText='日期' type='date' format='yMd'></ColumnDirective>
</ColumnsDirective>
// ❌ 错误 - 类型不匹配
const data = [
{
TaskID: '1', // 应为数字却使用字符串
StartDate: '02/03/2024' // 应为Date对象却使用字符串
}
];import React from 'react';
import { TreeGridComponent, ColumnsDirective, ColumnDirective, Inject, Page } from '@syncfusion/ej2-react-treegrid';
import { DataManager, UrlAdaptor } from '@syncfusion/ej2-data';
interface ITreeData {
TaskID?: number;
TaskName?: string;
parentID: number | null;
Children?: ITreeData[];
}
export default function App() {
const data: ITreeData[] = [
{
TaskID: 1,
TaskName: 'Planning',
parentID: null,
Children: [{ TaskID: 2, TaskName: 'Plan timeline', parentID: 1 }]
}
];
return (
<TreeGridComponent
dataSource={data}
childMapping="Children"
treeColumnIndex={1}
height="auto"
allowPaging={true}
>
<ColumnsDirective>
<ColumnDirective field="TaskID" headerText="Task ID" width={80} />
<ColumnDirective field="TaskName" headerText="Task Name" width={160} />
</ColumnsDirective>
<Inject services={[Page]} />
</TreeGridComponent>
);
}import React from 'react';
import { TreeGridComponent, ColumnsDirective, ColumnDirective, Inject, Page } from '@syncfusion/ej2-react-treegrid';
import { DataManager, UrlAdaptor } from '@syncfusion/ej2-data';
interface ITreeData {
TaskID?: number;
TaskName?: string;
parentID: number | null;
Children?: ITreeData[];
}
export default function App() {
const data: ITreeData[] = [
{
TaskID: 1,
TaskName: '规划',
parentID: null,
Children: [{ TaskID: 2, TaskName: '规划时间线', parentID: 1 }]
}
];
return (
<TreeGridComponent
dataSource={data}
childMapping="Children"
treeColumnIndex={1}
height="auto"
allowPaging={true}
>
<ColumnsDirective>
<ColumnDirective field="TaskID" headerText="任务ID" width={80} />
<ColumnDirective field="TaskName" headerText="任务名称" width={160} />
</ColumnsDirective>
<Inject services={[Page]} />
</TreeGridComponent>
);
}| Property | Type | Default | Description |
|---|---|---|---|
| Array | DataManager | | Data source for TreeGrid |
| string | | Property name for child records (e.g., "Children") |
| string | | Property name for unique ID (flat data) |
| string | | Property name for parent ID (flat data) |
| string | | Property for lazy load indicator |
| number | | Column index for tree expand icons |
| string | | Property for initial expand state |
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| Array | DataManager | | TreeGrid的数据源 |
| string | | 子记录的属性名称(例如"Children") |
| string | | 唯一ID的属性名称(扁平数据) |
| string | | 父ID的属性名称(扁平数据) |
| string | | 懒加载指示器的属性 |
| number | | 树形展开图标的列索引 |
| string | | 初始展开状态的属性 |