Skip to content

Commit 1ce765e

Browse files
969759: committed sample level issues reported from dev team.
1 parent bfb75d5 commit 1ce765e

File tree

2 files changed

+68
-14
lines changed

2 files changed

+68
-14
lines changed

src/components/TreeGrid/App.css

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1552,14 +1552,14 @@ th[aria-colindex="5"] .e-filtermenudiv {
15521552

15531553
}
15541554
@media (min-width: 1023px) {
1555-
.e-menu-wrapper.e-popup.e-menu-popup,
1556-
.e-menu-container.e-popup.e-menu-popup {
1555+
.e-template-menu.e-menu-wrapper.e-popup.e-menu-popup,
1556+
.e-template-menu.e-menu-container.e-popup.e-menu-popup {
15571557
margin-left: -5%;
15581558
top: 66px !important;
15591559
}
15601560
}
15611561
@media (min-width: 800px) and (max-width: 1024px) {
1562-
.e-menu-wrapper.e-popup.e-menu-popup {
1562+
.e-template-menu.e-menu-wrapper.e-popup.e-menu-popup {
15631563
margin-left: 5px !important;
15641564
}
15651565
}
@@ -1574,7 +1574,7 @@ th[aria-colindex="5"] .e-filtermenudiv {
15741574
margin-left: 0px !important;
15751575
}
15761576
}
1577-
.e-menu-wrapper ul .e-menu-item .e-caret {
1577+
.e-template-menu.e-menu-wrapper ul .e-menu-item .e-caret {
15781578
top: 0px !important;
15791579
right: 0px !important;
15801580
}

src/components/TreeGrid/App.tsx

Lines changed: 64 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useMemo, useRef, useState, useEffect } from 'react';
44
import { parentsUntil, ValueType, FilterBarMode, CheckboxSelectionType, SelectionType, CommandModel, FailureEventArgs, ContextMenuClickEventArgs, getObject } from '@syncfusion/ej2-react-grids';
55
import { TreeGridComponent, FilterType, LoadingIndicatorModel, AggregateTemplateContext, RowPosition, AggregatesDirective, AggregateDirective, AggregateColumnsDirective, AggregateColumnDirective, ColumnModel, FilterHierarchyMode, SelectionSettingsModel, ContextMenuItem, ToolbarItems, FilterSettingsModel, EditMode, TreeGridColumn, RowDD, Aggregate, Resize, Toolbar, ColumnChooser, CommandColumn, Edit, ContextMenu, ColumnMenu, VirtualScroll, Page, PdfExport, ExcelExport, Freeze, ColumnsDirective, ColumnDirective, Filter, Sort, Reorder, Inject, ITreeData } from '@syncfusion/ej2-react-treegrid';
66
import { projectDetails } from './datasource';
7-
import { ButtonComponent, CheckBoxComponent, ChipListComponent, ChipsDirective, ChipDirective } from '@syncfusion/ej2-react-buttons';
7+
import { ButtonComponent, CheckBoxComponent, ChipListComponent, ChipsDirective, ChipDirective, ChangeEventArgs } from '@syncfusion/ej2-react-buttons';
88
import { AppBarComponent, MenuComponent, SidebarComponent } from '@syncfusion/ej2-react-navigations';
99
import { AutoComplete, FieldSettingsModel } from '@syncfusion/ej2-react-dropdowns';
1010
import { isNullOrUndefined, DateFormatOptions, createElement, closest } from '@syncfusion/ej2-base';
@@ -43,7 +43,7 @@ export const App = () => {
4343
let selectionType: string = "Multiple";
4444
let selectNewRowPosition: string = "Top";
4545
let selectEditMode: string = "Row";
46-
const dateRules: object = { date: ['M/d/yyyy', 'Please enter a valid date']};
46+
const dateRules: object = { date: ['M/d/yyyy', 'Please enter a valid date'], required: true };
4747
let dateParams : any = { params: { format: 'M/d/yyyy' } };
4848
let showEditLabel: boolean = false;
4949
const durationIDRules: object = { required: true, number: true };
@@ -84,6 +84,10 @@ export const App = () => {
8484
let menuObj: MenuComponent;
8585
const taskIDRules = { required: true };
8686
const taskNameRules = { required: true };
87+
let dateFormat = {
88+
format: "dd/MM/yyyy",
89+
type: "date"
90+
};
8791
const costRules = { required: true, number: true };
8892
let menuRef!: MenuComponent;
8993
let menuMobileRef!: MenuComponent;
@@ -430,6 +434,7 @@ export const App = () => {
430434
filterBarTypeOptions: [
431435
{ value: "CheckBox", text: "CheckBox" },
432436
{ value: "Excel", text: "Excel" },
437+
{ value: "Menu", text: "Menu" },
433438
{ value: "FilterBar", text: "FilterBar" }
434439
],
435440
filterHierarchyOptions: [
@@ -927,6 +932,19 @@ export const App = () => {
927932
startWalkthrough();
928933
},
929934

935+
onDataBound: () => {
936+
if (treegridInst) {
937+
if (treegridInst.filterSettings.type === "FilterBar") {
938+
document.querySelectorAll('.e-filterbar th[e-mappinguid="grid-column10005"], .e-filterbar th[e-mappinguid="grid-column10004"], .e-filterbar th[e-mappinguid="grid-column10012"], .e-filterbar th[e-mappinguid="grid-column10008"], .e-filterbar th[e-mappinguid="grid-column10007"]').forEach(cell => {
939+
var val: any = (cell as any).querySelector('div.e-fltrinputdiv');
940+
if (!isNullOrUndefined(val)) {
941+
val.style.display = "none";
942+
}
943+
});
944+
}
945+
}
946+
},
947+
930948
exportComplete:(args : any) => {
931949
treegridInst.showColumns(['Priority']);
932950
},
@@ -989,7 +1007,7 @@ export const App = () => {
9891007
textboxInstance.value = "";
9901008
dialogInstance!.hide();
9911009
} else if (args.target.textContent === "Search") {
992-
if (selectedField && selectedOperator && selectedHierarchy) {
1010+
if (selectedField && selectedOperator && selectedHierarchy && !isNullOrUndefined(searchText)) {
9931011
treegridInst.searchSettings = {
9941012
fields: [selectedField],
9951013
operator: selectedOperator,
@@ -1351,20 +1369,40 @@ export const App = () => {
13511369
}
13521370
},
13531371

1354-
singleColumnSettingsDateFormat : ((args: any) => {
1372+
singleColumnSettingsDateFormat: ((args: any) => {
13551373
let columns = treegridInst.getColumns();
13561374
for (let i = 0; i < columns.length; i++) {
13571375
if (columns[i].field === 'EndDate') {
1376+
const aggregate = treegridInst.aggregates[0];
1377+
if (aggregate && aggregate.columns) {
1378+
const endDateAggregate = aggregate.columns.find(col => col.field === 'EndDate');
1379+
if (endDateAggregate) {
1380+
endDateAggregate.format = { format: args.event.currentTarget.innerText, type: 'date' };
1381+
}
1382+
}
13581383
if (typeof treegridInst.getColumns()[i].format === 'string' || !treegridInst.getColumns()[i].format) {
13591384
treegridInst.getColumns()[i].format = { format: '', type: 'date' };
1360-
}
1385+
}
13611386
(treegridInst.getColumns()[i].format as DateFormatOptions).format = args.event.currentTarget.innerText;
13621387
(treegridInst.getColumns()[i].format as DateFormatOptions).type = 'date';
1363-
treegridInst.refreshColumns();
1388+
treegridInst.columns = columns;
13641389
}
13651390
}
13661391
}),
13671392

1393+
1394+
singleColumnSettingsFreeze: ((args: any, data?: any) => {
1395+
if (treegridInst) {
1396+
let columns = treegridInst.getColumns();
1397+
columns.forEach((col) => {
1398+
if (col.field === "EndDate") {
1399+
col.freeze = data.properties.text;
1400+
treegridInst.columns = columns;
1401+
}
1402+
});
1403+
}
1404+
}),
1405+
13681406
handleFilterTypeChange: (value: any, dropRef: any) => {
13691407
const barstatusElement = document.getElementById("barstatus");
13701408
const filterbarmodeElement = document.getElementById("filterbarmode");
@@ -1481,12 +1519,25 @@ export const App = () => {
14811519
text: 'Column Date',
14821520
iconCss: 'e-icons e-settings icon',
14831521
items: [
1522+
{
1523+
text: 'Format',
1524+
items: [
14841525
{ text: 'yMMM', id:'yMMM', method: menuItemMethods.singleColumnSettingsDateFormat, checkbox: false },
14851526
{ text: 'dd/MM/yyyy', id: 'dd/MM/yyyy', method: menuItemMethods.singleColumnSettingsDateFormat, checkbox: true },
14861527
{ text: 'dd.MM.yyyy', id: 'dd.MM.yyyy', method: menuItemMethods.singleColumnSettingsDateFormat, checkbox: false },
14871528
{ text: 'dd/MM/yyyy hh:mm a', id: 'dd/MM/yyyy hh:mm a', method: menuItemMethods.singleColumnSettingsDateFormat, checkbox: false },
14881529
{ text: 'MM/dd/yyyy hh:mm:ss a', id: 'MM/dd/yyyy hh:mm:ss a', method: menuItemMethods.singleColumnSettingsDateFormat, checkbox: false },
14891530
]
1531+
}, {
1532+
text: 'Freeze',
1533+
items: [
1534+
{ text: 'Left', id: 'Freeze Left', method: menuItemMethods.singleColumnSettingsFreeze, checkbox: true },
1535+
{ text: 'Right', id: 'Freeze Right', method: menuItemMethods.singleColumnSettingsFreeze, checkbox: false },
1536+
{ text: 'Fixed', id: 'Freeze Fixed', method: menuItemMethods.singleColumnSettingsFreeze, checkbox: false },
1537+
{ text: 'None', id: 'Freeze None', method: menuItemMethods.singleColumnSettingsFreeze, checkbox: false },
1538+
]
1539+
}
1540+
],
14901541
},
14911542
],
14921543
};
@@ -1510,6 +1561,7 @@ export const App = () => {
15101561
items: [
15111562
{ id: 'selection', label: 'Allow Selection', defaultChecked: true },
15121563
{ id: 'textwrap', label: 'Allow Text Wrap', defaultChecked: false },
1564+
{ id: 'paging', label: 'Allow Paging', defaultChecked: true },
15131565
{ id: 'showcolumnmenu', label: 'Show Column Menu', defaultChecked: false },
15141566
{ id: 'general_treegrid', type: 'Separator' }
15151567
]
@@ -2042,6 +2094,8 @@ export const App = () => {
20422094
}
20432095
else if (selectedListItemRef.current === "Tree Grid Settings") {
20442096
treegridInst.allowTextWrap = prev.textwrap;
2097+
treegridInst.allowPaging = prev.paging;
2098+
treegridInst.enableVirtualization = !prev.paging;
20452099
treegridInst.showColumnMenu = prev.showcolumnmenu;
20462100
treegridInst.enableAltRow = prev.altrow;
20472101
if (treegridInst.enableAltRow) {
@@ -2284,7 +2338,6 @@ export const App = () => {
22842338
allowSorting: false,
22852339
headerTemplate: treegridCommonTemplates.durationTemplate,
22862340
validationRules: durationIDRules,
2287-
filterTemplate: treegridFilterTemplates.filterTemplate,
22882341
editType: "numericedit",
22892342
minWidth: 50,
22902343
maxWidth: 200
@@ -2330,19 +2383,20 @@ export const App = () => {
23302383
actionBegin={handleTreeGridEvent.actionBegin}
23312384
toolbarClick={handleTreeGridEvent.toolbarClick}
23322385
created={handleTreeGridEvent.onTreeGridCreated}
2386+
dataBound={handleTreeGridEvent.onDataBound}
23332387
excelExportComplete={handleTreeGridEvent.exportComplete}
23342388
>
23352389
<ColumnsDirective>
23362390
<ColumnDirective type='checkbox' width={40} allowEditing={false} minWidth={35} maxWidth={80} />
23372391
<ColumnDirective field="TaskID" headerTextAlign='Center' validationRules={taskIDRules} disableHtmlEncode={false} isPrimaryKey={true} minWidth={135} width={145} maxWidth={165} filterBarTemplate={treegridFilterTemplates.taskIDFilter} headerText="Task ID" template={customComponentTemplates.taskTemplate} />
23382392
<ColumnDirective field="TaskName" headerTextAlign="Center" validationRules={taskNameRules} allowFiltering={true} filterBarTemplate={treegridFilterTemplates.taskNameFilter} allowSorting={false} showColumnMenu={false} headerTemplate={treegridCommonTemplates.taskNameSettings} width={200} minWidth={190} maxWidth={220} />
23392393
<ColumnDirective headerText='Project Details' textAlign='Center' headerTextAlign="Center" columns={treegridProperties.projectColumns} />
2340-
<ColumnDirective field="Progress" validationRules={costRules} allowSorting={false} headerTextAlign="Center" showColumnMenu={false} headerTemplate={treegridCommonTemplates.progressSettings} headerText="Progress (%)" template={treegridCommonTemplates.progressTemplate} width={170} minWidth={160} maxWidth={200} filterTemplate={treegridFilterTemplates.filterTemplate} />
2341-
<ColumnDirective field="Priority" headerTextAlign="Center" minWidth={120} maxWidth={270} width={190} textAlign="Center" filterTemplate={treegridFilterTemplates.filterTemplate} editType='dropdownedit' template={treegridCommonTemplates.priorityTemplate} />
2394+
<ColumnDirective field="Progress" validationRules={costRules} allowSorting={false} headerTextAlign="Center" showColumnMenu={false} headerTemplate={treegridCommonTemplates.progressSettings} headerText="Progress (%)" template={treegridCommonTemplates.progressTemplate} width={170} minWidth={160} maxWidth={200} />
2395+
<ColumnDirective field="Priority" headerTextAlign="Center" minWidth={120} maxWidth={270} width={190} textAlign="Center" editType='dropdownedit' template={treegridCommonTemplates.priorityTemplate} />
23422396
<ColumnDirective field="EstimatedCost" validationRules={costRules} format="C0" allowSorting={false} type='number' textAlign='Right' headerTextAlign="Center" showColumnMenu={false} headerTemplate={treegridCommonTemplates.estimatedCostSettings} width={150} minWidth={60} maxWidth={250} filterBarTemplate={treegridFilterTemplates.templateOptionsCostTextBox} />
23432397
<ColumnDirective field="ActualCost" validationRules={costRules} allowSorting={false} format="C0" type='number' textAlign='Right' headerTextAlign="Center" showColumnMenu={false} headerTemplate={treegridCommonTemplates.actualCostSettings} width={150} minWidth={60} maxWidth={250} filterBarTemplate={treegridFilterTemplates.templateOptionsCostTextBox} />
23442398
<ColumnDirective field="CostDifference" validationRules={costRules} headerTextAlign="Center" headerText='Cost Comparison' width={180} minWidth={155} maxWidth={250} template={treegridCommonTemplates.costComparisonTemplate}></ColumnDirective>
2345-
<ColumnDirective headerText='Command' filterTemplate={treegridFilterTemplates.filterTemplate} freeze="Right" headerTextAlign="Center" textAlign='Center' width={120} minWidth={110} maxWidth={250} commands={treegridProperties.commands} />
2399+
<ColumnDirective headerText='Command' freeze="Right" headerTextAlign="Center" textAlign='Center' width={120} minWidth={110} maxWidth={250} commands={treegridProperties.commands} />
23462400
</ColumnsDirective>
23472401
<AggregatesDirective>
23482402
<AggregateDirective showChildSummary={false}>

0 commit comments

Comments
 (0)