|
10 | 10 | Width="100%" |
11 | 11 | AllowFiltering="true" |
12 | 12 | AllowSorting="true" |
13 | | - TreeColumnIndex="1" |
14 | | - EnableContextMenu="true" |
15 | 13 | Toolbar="@ToolbarItems"> |
16 | 14 |
|
17 | | - <SfDataManager Url="https://localhost:7000/graphql" |
18 | | - Adaptor="Adaptors.GraphQLAdaptor" |
19 | | - GraphQLAdaptorOptions="@AdaptorOptions"> |
20 | | - </SfDataManager> |
| 15 | + <SfDataManager Url="https://localhost:7000/graphql" Adaptor="Adaptors.GraphQLAdaptor" GraphQLAdaptorOptions="@AdaptorOptions"></SfDataManager> |
21 | 16 |
|
22 | 17 | <GanttTaskFields Id="@nameof(TaskDataModel.TaskID)" Name="@nameof(TaskDataModel.TaskName)" StartDate="@nameof(TaskDataModel.StartDate)" |
23 | 18 | EndDate="@nameof(TaskDataModel.EndDate)" Duration="@nameof(TaskDataModel.Duration)" Progress="@nameof(TaskDataModel.Progress)" |
|
33 | 28 | <GanttColumn Field="@nameof(TaskDataModel.Progress)" HeaderText="Progress" Width="130"> |
34 | 29 | <Template> |
35 | 30 | @{ |
36 | | - var taskRecord = context as TaskDataModel; |
| 31 | + TaskDataModel? taskRecord = context as TaskDataModel; |
37 | 32 | if (taskRecord == null) return; |
38 | 33 |
|
39 | 34 | string progressText = $"{taskRecord.Progress}%"; |
|
50 | 45 | </Template> |
51 | 46 | </GanttColumn> |
52 | 47 | <GanttColumn Field="@nameof(TaskDataModel.Predecessor)" HeaderText="Predecessor" Width="200"> |
53 | | - |
54 | 48 | <Template> |
55 | 49 | @{ |
56 | | - var task = context as TaskDataModel; |
57 | | - var value = task?.Predecessor; |
| 50 | + TaskDataModel? task = context as TaskDataModel; |
| 51 | + string? value = task?.Predecessor; |
58 | 52 |
|
59 | 53 | if (!string.IsNullOrWhiteSpace(value)) |
60 | 54 | { |
61 | | - <div class="e-dependencies">@value</div> |
62 | | - ; |
| 55 | + <div class="e-dependencies">@value</div>; |
63 | 56 | } |
64 | 57 | else |
65 | 58 | { |
66 | | - <div> - </div> |
67 | | - ; |
| 59 | + <div> - </div>; |
68 | 60 | } |
69 | 61 | } |
70 | 62 | </Template> |
|
76 | 68 |
|
77 | 69 | public List<object> ToolbarItems = new() { "Add", "Edit", "Update", "Delete", "Search" }; |
78 | 70 |
|
79 | | - // GraphQL adaptor configuration: ResolverName must match your server method (PascalCase) |
80 | | - // and the query must select count + result with the fields the Gantt needs. |
81 | 71 | private Syncfusion.Blazor.Data.GraphQLAdaptorOptions AdaptorOptions => new() |
82 | 72 | { |
83 | 73 | ResolverName = "TaskData", |
84 | | - Query = @" |
85 | | - query TaskData($dataManager: DataManagerRequestInput!) { |
86 | | - taskData(dataManager: $dataManager) { |
87 | | - count |
88 | | - result { |
89 | | - taskID |
90 | | - taskName |
91 | | - startDate |
92 | | - endDate |
93 | | - duration |
94 | | - progress |
95 | | - predecessor |
96 | | - parentID |
97 | | - } |
98 | | - } |
99 | | - }", |
| 74 | + Query = @"query TaskData($dataManager: DataManagerRequestInput!) { |
| 75 | + taskData(dataManager: $dataManager) { |
| 76 | + count |
| 77 | + result { |
| 78 | + taskID |
| 79 | + taskName |
| 80 | + startDate |
| 81 | + endDate |
| 82 | + duration |
| 83 | + progress |
| 84 | + predecessor |
| 85 | + parentID |
| 86 | + } |
| 87 | + } |
| 88 | + }", |
100 | 89 |
|
101 | 90 | Mutation = new Syncfusion.Blazor.Data.GraphQLMutation |
102 | 91 | { |
103 | 92 | // INSERT (matches InsertTask parameters) |
104 | | - Insert = @" |
105 | | - mutation create($record: TaskDataModelInput!, $index: Int!, $action: String!, $additionalParameters: Any) { |
| 93 | + Insert = @"mutation create($record: TaskDataModelInput!, $index: Int!, $action: String!, $additionalParameters: Any) { |
106 | 94 | createTask(record: $record, index: $index, action: $action, additionalParameters: $additionalParameters) { |
107 | 95 | taskID |
108 | 96 | taskName |
|
114 | 102 | parentID |
115 | 103 | } |
116 | 104 | }", |
117 | | - Update = @"mutation update($record: TaskDataModelInput!, $action: String!, $primaryColumnName: String!, $primaryColumnValue: Int!, $additionalParameters: Any) { |
| 105 | + Update = @"mutation update($record: TaskDataModelInput!, $action: String!, $primaryColumnName: String!, $primaryColumnValue: Int!, $additionalParameters: Any) { |
118 | 106 | updateTask(record: $record, action: $action, primaryColumnName: $primaryColumnName, primaryColumnValue: $primaryColumnValue, additionalParameters: $additionalParameters) { |
119 | 107 | taskID taskName startDate endDate duration progress predecessor parentID |
120 | 108 | } |
121 | | - }", |
| 109 | + }", |
122 | 110 |
|
123 | 111 | // DELETE (matches DeleteTask parameters) |
124 | | - Delete = @"mutation delete($primaryColumnValue: ID!, $additionalParameters: Any) { |
| 112 | + Delete = @"mutation delete($primaryColumnValue: ID!, $additionalParameters: Any) { |
125 | 113 | deleteTask(key: $primaryColumnValue, additionalParameters: $additionalParameters) |
126 | 114 | }", |
127 | | - Batch = @"mutation batch($changed: [TaskDataModelInput!], $added: [TaskDataModelInput!], $deleted: [TaskDataModelInput!], $action: String!, $primaryColumnName: String!, $additionalParameters: Any, $dropIndex: Int) { |
128 | | - batchUpdate(changed: $changed, added: $added, deleted: $deleted, action: $action, primaryColumnName: $primaryColumnName, additionalParameters: $additionalParameters, dropIndex: $dropIndex) { |
129 | | - taskID |
130 | | - taskName |
131 | | - startDate |
132 | | - endDate |
133 | | - duration |
134 | | - progress |
135 | | - predecessor |
136 | | - parentID |
137 | | - } |
138 | | - }" |
| 115 | + |
| 116 | + Batch = @"mutation batch($changed: [TaskDataModelInput!], $added: [TaskDataModelInput!], $deleted: [TaskDataModelInput!], $action: String!, $primaryColumnName: String!, $additionalParameters: Any, $dropIndex: Int) { |
| 117 | + batchUpdate(changed: $changed, added: $added, deleted: $deleted, action: $action, primaryColumnName: $primaryColumnName, additionalParameters: $additionalParameters, dropIndex: $dropIndex) { |
| 118 | + taskID |
| 119 | + taskName |
| 120 | + startDate |
| 121 | + endDate |
| 122 | + duration |
| 123 | + progress |
| 124 | + predecessor |
| 125 | + parentID |
| 126 | + } |
| 127 | + }" |
139 | 128 | } |
140 | 129 | }; |
141 | 130 | } |
|
0 commit comments