Hello,
Straight to the problem:
My parent component prepares the data for the Gantt
async componentDidMount() {
const items = await
this
.utility.GetListItems();
const taskDataSourceWithInformation = await
this
.utility.GetKendoGanttDataSource(items);
this
.setState({
data: taskDataSourceWithInformation,
allProjects: items
});
}
const result =
this
.state.data ? (
<div>
<IconButton onClick={() =>
this
.setState({showPanel:
true
})}
/>
<GanttContainer data={
this
.state.data} />
</div>
) :
null
;
return
result;
}
First problem: When I click the button, that sets the showPanel variable to true (it does only that), the Gantt loses all its data, then when I click one of the Gantt view buttons, the data shows back.
However, i managed to workaround that with this method (i am not proud of it). I will appreciate it, if you give me better solution.
private onFilterButtonClick = async () => {
this
.selected = $(
"li.k-state-selected"
);
this
.setState(
{
showPanel:
true
},
() => {
$(
"li."
+
this
.selected[0].classList[1]).click();
}
);
};
Ok. Now i want to filter my Gantt data. When i pass different, filtered data source to the "GanttContainer" components (which contains the Gantt), it does not update.
I tried to set it with setDataSource, but i dont know where that must happen and how to do it.
Can you help me with both my problems please.
Best Regards!
Hello,
Is it possible to use functional HOC for CustomGridDetailRow like the one provided in the documentation (below) which is not leading to extra rendering of GridDetailRow?
Or it's a must to use only an instance of React.Component class/GridDetailRow class?
class CustomGridDetailRow extends GridDetailRow {
render() {
const detailData = this.props.dataItem.MasterField2;
return (
<div> This is detail template with another grid inside it <Grid scrollable="none" data={detailData} /></div>
);
}
}
<Grid data={this.state.data} detail={CustomGridDetailRow} >
<GridColumn field="MasterField1" />
</Grid>
The point is that if I try to use functional HOC inside detail prop (or just a function returning CustomGridComponent) there're some issues with rendering DetailRow (like additional re-rendering during scrolling). It seems that this variable inside detail property should be an instance of React.Component/GridDetailRow class, otherwise Grid component can't perform some internal logic based on lifecycle hooks.
Thanks in advance for any response.
I'm using the Kendo React Grid and Kendo React DateInput in an application and both, upon replacing the wrapped grid/DateInput components began causing my Jest tests to fail, not even rendering the mounted component.
Every test suite that mounts a component with a DateInput or Grid in the component tree fails with this error:
TypeError: _this.element.setCustomValidity is not a function
124 | ...passedProps,
125 | } as any;
> 126 | wrapper = Enzyme.mount(
| ^
127 | <
Provider
store={store}>
128 | <
MyComponent
{...props} />
129 | </
Provider
>
at DateInput._this.setValidity (node_modules/@progress/kendo-react-dateinputs/src/dateinput/DateInput.tsx:387:26)
at DateInput.Object.<
anonymous
>.DateInput.componentDidMount (node_modules/@progress/kendo-react-dateinputs/src/dateinput/DateInput.tsx:150:14)
at commitLifeCycles (node_modules/react-dom/cjs/react-dom.development.js:14685:22)
at commitAllLifeCycles (node_modules/react-dom/cjs/react-dom.development.js:15905:7)
at HTMLUnknownElement.callCallback (node_modules/react-dom/cjs/react-dom.development.js:145:14)
at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:193:27)
at HTMLUnknownElementImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:119:9)
at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:82:17)
at HTMLUnknownElementImpl.dispatchEvent (node_modules/jsdom/lib/jsdom/living/nodes/HTMLElement-impl.js:30:27)
at HTMLUnknownElement.dispatchEvent (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:157:21)
at Object.invokeGuardedCallbackDev (node_modules/react-dom/cjs/react-dom.development.js:195:16)
at invokeGuardedCallback (node_modules/react-dom/cjs/react-dom.development.js:248:31)
at commitRoot (node_modules/react-dom/cjs/react-dom.development.js:16075:7)
at completeRoot (node_modules/react-dom/cjs/react-dom.development.js:17463:3)
at performWorkOnRoot (node_modules/react-dom/cjs/react-dom.development.js:17391:9)
at performWork (node_modules/react-dom/cjs/react-dom.development.js:17295:7)
at performSyncWork (node_modules/react-dom/cjs/react-dom.development.js:17267:3)
at requestWork (node_modules/react-dom/cjs/react-dom.development.js:17155:5)
at scheduleWork (node_modules/react-dom/cjs/react-dom.development.js:16949:5)
at scheduleRootUpdate (node_modules/react-dom/cjs/react-dom.development.js:17637:3)
at updateContainerAtExpirationTime (node_modules/react-dom/cjs/react-dom.development.js:17664:10)
at updateContainer (node_modules/react-dom/cjs/react-dom.development.js:17691:10)
at ReactRoot.Object.<
anonymous
>.ReactRoot.render (node_modules/react-dom/cjs/react-dom.development.js:17957:3)
at node_modules/react-dom/cjs/react-dom.development.js:18097:14
at unbatchedUpdates (node_modules/react-dom/cjs/react-dom.development.js:17518:10)
at legacyRenderSubtreeIntoContainer (node_modules/react-dom/cjs/react-dom.development.js:18093:5)
at Object.render (node_modules/react-dom/cjs/react-dom.development.js:18152:12)
at Object.render (node_modules/enzyme-adapter-react-16/build/ReactSixteenAdapter.js:314:114)
at new ReactWrapper (node_modules/enzyme/build/ReactWrapper.js:119:16)
at Object.mount (node_modules/enzyme/build/mount.js:21:10)
at generateMountedWrapper (ts/apps/myApp/components/MyComponent.test.tsx:126:20)
at Object.<
anonymous
> (ts/apps/myApp/components/MyComponent.test.tsx:330:5)
I just upgraded to use the react editor wrapper. The editor is showing up but not all options are available. These are the options I am passing, but it looks like it is just showing the default options. Any ideas?
options: {
tools: [
'bold',
'italic',
'underline',
'strikethrough',
{
name: 'foreColor',
palette: [
'24282D',
'F4F4F4',
'FFD200',
'F04C3E',
'00B050',
'363A3F',
'74777D',
'E4E5E7',
'F2C700',
'EB2D1E',
'FFFFFF',
'237932',
'33373b',
'676A6F',
'D9DADB',
'E5BD00',
'D71E0F',
'21852E',
'0070C0',
'44494F',
'81858B'
]
},
{
name: 'backColor',
palette: [
'24282D',
'F4F4F4',
'FFD200',
'F04C3E',
'00B050',
'363A3F',
'74777D',
'E4E5E7',
'F2C700',
'EB2D1E',
'FFFFFF',
'237932',
'33373b',
'676A6F',
'D9DADB',
'E5BD00',
'D71E0F',
'21852E',
'0070C0',
'44494F',
'81858B'
]
},
'formatting',
'fontSize',
'subscript',
'superscript',
'justifyLeft',
'justifyCenter',
'justifyRight',
'justifyFull',
'insertUnorderedList',
'insertOrderedList',
'indent',
'outdent',
'createLink',
'createTable',
'addColumnLeft',
'addColumnRight',
'addRowAbove',
'addRowBelow',
'deleteRow',
'deleteColumn',
'cleanFormatting',
'print'
],
pasteCleanup: {
all: false,
css: false,
keepNewLines: false,
msAllFormatting: true,
msConvertLists: true,
msTags: true,
none: false,
span: false
}
}
Can anyone confirm if the Kendo React Grids are supposed to be compatible with the Kendo Less Styles? When I attempt to use them with a compiled set of styles from the Kendo LESS sources in the @progress/kendo-ui package, the react grids filter blocks render in a broken, inoperable way as the Less style rules react badly with the classes on the filter cells.
The SASS themes work with it, but don't work with the Relerik Reports views.
I will sometimes see the wrong tooltip label in cells on my grid. I want the tooltip to appear on the hover anywhere in a particular td that has messages to display. These messages are based on props of the dataItem being available. There are a few problems.
1 & 2 are visible/reproducible in my stackblitz. I have been unable to replicate 3 in stackblitz so I was wondering if it was related to my splitter (not implemented in stackblitz to save time..)
Ideally I would only have one <Tooltip component for my grid but it becomes unnatural to me to have to iterate state from the Grid component instead of at the cell level. I do want the tooltip to be interacted with via the icon when in edit mode as well but I have not implemented that here. Is there a better approach that preferably avoids the use of globals?
It's been nearly 1 year since I submitted a post about Kendo UI React Scheduler. The is still a wrapper. Are there any plans to make the scheduler a component and if so when. Thank you - Mark
I'm using a modified example of the in row editing. When a cell is clicked I switch the row to edit mode. I've inspected both the cellRender and rowRender methods and I don't see any properties to indicate the editable={false} from my GridColumn props. The cell rendering routine must know this in order to control the display. Is there a property I am overlooking?
I want to preventing switching my row to edit mode if the cell clicked is not editable. Help appreciated. See my example on stackblitz. When clicking a cell it shows the editField in the header which is what I want to prevent on the click of a non-editable cell (all are marked as editable false here).