So I am hoping to use a button to open a window which will have a form for editing or adding data which is inside of the Grid Kendo UI component. Basically when they hit the edit button I would like a window to pop up pre-populated with some data from that line inside of the grid.
Getting the data passed to the window is not a problem, the problem is that the window seems to only render inside of the grid component where I would actually like it to render inside of the browser window if possible. I am using a command cell to place the buttons inside of the grid, ultimately the window component is housed inside of this command cell. I am doing this because I dont believe it is possible to move data back up to parent components from a child component, i.e. if i change state on a child component I can not pass that state up to the parent component. Below is my code for the command cell:
import React from 'react';import { GridCell } from '@progress/kendo-react-grid';import { Window } from '@progress/kendo-react-dialogs';import { Dialog, DialogActionsBar } from '@progress/kendo-react-dialogs';import { Form, Field, FormElement } from '@progress/kendo-react-form';import { Error } from '@progress/kendo-react-labels';import { Input } from '@progress/kendo-react-inputs';import { Progressbar, ChunkProgressBar } from '@progress/kendo-react-progressbars'import {Fullscreen} from "@material-ui/icons";export function DataGridCommandCell({ edit, remove, add, update, discard, cancel, editField }) { return class extends GridCell { constructor(props) { super(props); this.state = { windowVisible: false }; this.toggleEditWindow = this.toggleEditWindow.bind(this) } toggleEditWindow(){ this.setState( {windowVisible: !this.state.windowVisible} ) console.log(this.props.dataItem) } render() { const { dataItem } = this.props; const handleSubmit = (dataItem) => alert(dataItem.input.test); return ( <div> <button className="k-button k-primary" onClick={this.toggleEditWindow}>Edit</button> {this.state.windowVisible && <Window title = {'Executive Actions'} initialHeight={650} initialWidth={1000} onClose={this.toggleEditWindow} initialLeft={1} initialTop={1} stage={'Fullscreen'} > <div> test </div> </Window> } </div> ) } }};export default DataGridCommandCell
