Comments (4)
null
and undefined
are special since stringifying them ends up with the same value as stringifying empty strings.
Grouping is implemented via stringification, and a group key needs to be unique for a certain value.
So instead of poluting our codebase with all kind of weird checks, we have exposed column.groupToString and column.renderGroupTitle - you should use those to customize grouping to fit you specific needs - below you can find an example
const groupToString = value =>
value === null
? '<null>'
: value === undefined
? '<undefined>'
: value || '<empty>';
const renderGroupTitle = value => {
if (value === '<null>') {
return 'NULL or whatever group title you need';
}
if (value === '<undefined>') {
return 'UNDEFINED';
}
if (value === '<empty>') {
return 'EMPTY';
}
return value;
};
const columns: TypeColumn[] = [
{
name: 'country',
defaultFlex: 1,
header: 'Country',
groupToString,
renderGroupTitle,
},
{ name: 'firstName', defaultFlex: 1, header: 'First Name' },
{
name: 'age',
type: 'number',
defaultFlex: 1,
header: 'Age',
groupToString,
renderGroupTitle,
},
];
Let us know how it goes - should do the trick for even the most advanced use-cases.
from reactdatagrid.
The problem is not the display of the group string, the problem is the grouping is broken. It's not grouping correctly. ook at this screenshot for example (from the repro):
You can see that the group "usa" is collapsed, and yet there's an open subgroup beneath it. Isn't this a bug?
from reactdatagrid.
It is a bug for null and undefined values, but using the groupToString
/renderGroupTitle
pair of properties you can workaround those edge cases.
from reactdatagrid.
that did the trick, thanks :)
from reactdatagrid.
Related Issues (20)
- Is this library actively maintained?
- Incorrect onRowDoubleClick behaviour with scroll HOT 2
- Duplicate cells when scrolling
- Combine filtering and loadNode
- π‘ Add tooltip to cell rows
- Running setColumnsSizesAuto with virtualization does not size columsn not in view
- π¨ Bugs: Broken contact email ahead of renewal HOT 1
- π Bug: Grid Scrolls to the Left When Select Filter is Opened
- β Can you please answer my email ππΏ HOT 4
- Grid crashes if you add `showEmptyRows` to a treeGrid
- π Bug caused by Typo in reactdatagrid/community-edition/packages/NumericInput/src /NumberInput.tsx HOT 1
- π Bug: DateFilter autocompletes on first character of the input
- π Bug: drag & drop callbacks return incorrect data objects (with undocumented work-arounds)
- π‘ Customize height of header row & filter row
- π BUG: flex prop fails to interpret numeric arguments presented as strings properly as numbers - a single entry in columnData as a string causes the entire flex to fail.
- π Bug: No way to see which row is focus in select filter list
- π Bug: Cannot read properties of null (reading 'filter' or reading 'push') with createRoot - react@18
- number column in some group conditions sorts by first digit, not by number HOT 2
- How to custom menu tool
- βRequest for Invoice for License Purchase Dated February 19, 2024
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reactdatagrid.