diff --git a/src/richGridExample/ColDefFactory.jsx b/src/richGridExample/ColDefFactory.jsx
index 8c0e239..735dd63 100644
--- a/src/richGridExample/ColDefFactory.jsx
+++ b/src/richGridExample/ColDefFactory.jsx
@@ -9,46 +9,85 @@ import HeaderGroupComponent from './HeaderGroupComponent.jsx';
export default class ColDefFactory {
createColDefs() {
-
- var columnDefs = [
- {headerName: '#', width: 30, checkboxSelection: true, suppressSorting: true,
- suppressMenu: true, pinned: true},
+ return [
+ {
+ headerName: '#',
+ width: 30,
+ checkboxSelection: true,
+ suppressSorting: true,
+ suppressMenu: true,
+ pinned: true,
+ icons: {
+ checkboxChecked: '',
+ checkboxUnchecked: '',
+ checkboxIndeterminate: ''
+ }
+ },
{
headerName: 'Employee',
headerGroupComponentFramework: HeaderGroupComponent,
children: [
{
- headerName: "Name", field: "name", enableRowGroup: true, enablePivot: true,
- width: 150, pinned: true, editable: true,
+ headerName: "Name",
+ field: "name",
+ enableRowGroup: true,
+ enablePivot: true,
+ width: 150,
+ pinned: true,
+ editable: true,
// use a React cellEditor
cellEditorFramework: NameCellEditor
}, {
- headerName: "Country", field: "country", width: 150, enableRowGroup: true, enablePivot: true,
+ headerName: "Country",
+ field: "country",
+ width: 150,
+ enableRowGroup: true,
+ enablePivot: true,
// an example of using a non-React cell renderer
- cellRenderer: countryCellRenderer, pinned: true,
+ cellRenderer: countryCellRenderer,
+ pinned: true,
filterParams: {
- cellRenderer: countryCellRenderer, cellHeight: 20
- }, columnGroupShow: 'open'
+ cellRenderer: countryCellRenderer,
+ cellHeight: 20
+ },
+ columnGroupShow: 'open'
}, {
- headerName: "DOB", field: "dob", width: 110, enableRowGroup: true, enablePivot: true, filter:'date',
- pinned: true, cellRenderer: function(params) {
- return pad(params.value.getDate(), 2) + '/' +
- pad(params.value.getMonth() + 1, 2)+ '/' +
- params.value.getFullYear();
- }, columnGroupShow: 'open'
+ headerName: "DOB",
+ field: "dob",
+ width: 110,
+ enableRowGroup: true,
+ enablePivot: true,
+ filter: 'date',
+ pinned: true,
+ cellRenderer: function (params) {
+ return pad(params.value.getDate(), 2) + '/' +
+ pad(params.value.getMonth() + 1, 2) + '/' +
+ params.value.getFullYear();
+ },
+ columnGroupShow: 'open'
}
]
},
{
headerName: 'IT Skills',
children: [
- {headerName: "Skills", width: 125, suppressSorting: true, field: 'skills', enableRowGroup: true, enablePivot: true,
+ {
+ headerName: "Skills",
+ width: 125,
+ suppressSorting: true,
+ field: 'skills',
+ enableRowGroup: true,
+ enablePivot: true,
// supply a React component
cellRendererFramework: SkillsCellRenderer,
// supply a React component
filterFramework: SkillsFilter
},
- {headerName: "Proficiency", field: "proficiency", width: 135, enableValue: true,
+ {
+ headerName: "Proficiency",
+ field: "proficiency",
+ width: 135,
+ enableValue: true,
// supply a React component
cellRendererFramework: ProficiencyCellRenderer,
// supply a React component
@@ -65,7 +104,6 @@ export default class ColDefFactory {
]
}
];
- return columnDefs;
}
}
@@ -73,7 +111,7 @@ export default class ColDefFactory {
// need to use React for it.
function countryCellRenderer(params) {
if (params.value) {
- var flag = "
";
return flag + " " + params.value;
diff --git a/src/richGridExample/SortableHeaderComponent.jsx b/src/richGridExample/SortableHeaderComponent.jsx
index f034c1c..6a09591 100644
--- a/src/richGridExample/SortableHeaderComponent.jsx
+++ b/src/richGridExample/SortableHeaderComponent.jsx
@@ -7,7 +7,8 @@ export default class SortableHeaderComponent extends React.Component {
constructor(props) {
super(props);
- this.props.column.addEventListener('sortChanged', this.onSortChanged.bind(this));
+ // this.sortChanged = this.onSortChanged.bind(this);
+ this.props.column.addEventListener('sortChanged', this.onSortChanged);
//The state of this component contains the current sort state of this column
//The possible values are: 'asc', 'desc' and ''
@@ -16,6 +17,9 @@ export default class SortableHeaderComponent extends React.Component {
}
}
+ componentWillUnmount() {
+ this.props.column.removeEventListener('sortChanged', this.onSortChanged);
+ }
render() {
let sortElements = [];
@@ -51,7 +55,7 @@ export default class SortableHeaderComponent extends React.Component {
this.props.setSort(order, event.shiftKey);
};
- onSortChanged() {
+ onSortChanged = () => {
if (this.props.column.isSortAscending()) {
this.setState({
sorted: 'asc'