! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

세로로 붙여넣기를 하고 싶습니다. > Q&A | 토론

본문 바로가기

Wijmo

Q&A | 토론

ReactJS 세로로 붙여넣기를 하고 싶습니다.

페이지 정보

작성자 min444 작성일 2022-12-05 14:56 조회 810회 댓글 0건
제품 버전 : 위즈모

본문

https://www.grapecity.com/wijmo/demos/Grid/TreeGrid/ChildItems/react


이 페이지에 있는 소스를 약간 변형 시켜

------------------------------------------------------------------------------- 

import "@grapecity/wijmo.styles/wijmo.css";
import "bootstrap.css";
import "./app.css";
//
import * as React from 'react';
import * as ReactDOM from 'react-dom';
//
import { FlexGridFlexGridColumn } from "@grapecity/wijmo.react.grid";
import { getFamilies, getWorkers } from "./data";
class App extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            showAsTree: true,
            family: getFamilies(),
            workers: getWorkers(),
        };
    }
    render() {
        return <div className="container-fluid">
            <FlexGrid initialized={this.initGrid.bind(this)} headersVisibility="Column" childItemsPath={['checks''earnings']} itemsSource={this.state.workers}>
                <FlexGridColumn binding="name" header="Name"/>
                <FlexGridColumn binding="hours" dataType="Number" allowSorting={false}/>
                <FlexGridColumn binding="rate" dataType="Number" allowSorting={false}/>
            </FlexGrid>
        </div>;
    }
    initGrid(grid) {
        this.targetSettingGrid = grid;
        this.readOnly();
        
    }
    readOnly() {
        this.targetSettingGrid.rows.forEach((row) => {
            row.isReadOnly = false;
        })
    }
}
ReactDOM.render(<App />, document.getElementById('app'));

-------------------------------------------------------------------------------
이렇게 만들었습니다. app.jsx 에 그대로 붙여 넣으시면 작동합니다.

궁금한 것은 가로를 복사 후 다른 곳에 붙여넣기를 하면 작동합니다.

하지만 세로를 복사 후 다른 곳에 붙여넣기를 할 시 한번만 작동되고 그 후 편집이 불가해집니다.

해결방안을 부탁드립니다.

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

2 답변

ReactJS Re: 세로로 붙여넣기를 하고 싶습니다.

추천1 이 글을 추천하셨습니다 비추천0 채택채택

페이지 정보

작성자 GCK루시 작성일 2022-12-07 13:56 댓글 1건

본문

안녕하세요 그레이프시티입니다.


문의하신 TreeGrid 세로 복사 & 붙여넣기 기능과 관련하여 답변드립니다.


해당 기능을 구현하기 위해서는 그리드 행이 데이터 소스의 항목과 바인딩 된 후에 발생하는 loadedRows를 이용하시면 됩니다. 아래 코드와 같이 loadedRows 이벤트 내에서 모든 행의 isReadOnly 속성을 false로 설정하여 그리드의 내용이 수정된 후(붙여넣기 후)에도 다시 편집할 수 있도록 구현할 수 있습니다. 


loadedRows(grid, e) {
    grid.rows.forEach((row) => {
      row.isReadOnly = false;
    });
  }


아래 샘플을 공유드리오니 참고 부탁드립니다.



- loadedRows API


API 문서를 공유 드리며 다른 궁금한 점이 생기면, 문의 주시기 바랍니다.


감사합니다.

그레이프시티 드림

댓글목록

min444님의 댓글

min444 작성일

감사합니다. 잘 작동합니다. 혹시 왜 가로는 되고 세로는 안됐는지에 대해 알 수 있습니까?

ReactJS Re: 세로로 붙여넣기를 하고 싶습니다.

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 GCK루시 작성일 2022-12-08 16:31 댓글 0건

본문

안녕하세요 그레이프시티입니다.


해당 동작의 차이는 loadedRows 이벤트 발생 유무로 인해 발생하며 수직으로 복사 및 붙여넣기 시, 데이터 행들이 포함되기 때문에 그리드가 바인딩된 행들을 재로드하면서(loadedRows 이벤트 발생) 행들의 isReadOnly 속성의 값이 true로 변경됩니다.

따라서 행들의 isReadOnly 속성 값을 이벤트 내에서 false 설정을 하지 않는다면 편집 처리를 할 수 없게 됩니다. 


반대로 수평으로 복사 및 붙여넣기를 하면 단일 행 데이터만 업데이트가 되고 모든 행을 다시 로드할 필요가 없어(즉, loadedRows 이벤트가 발생하지 않음) 붙여넣기 후에도 편집 처리가 가능하게 됩니다.


해당 설명이 도움이 되었기를 바라며 다른 궁금한 점이 생기면, 문의 주시기 바랍니다.


감사합니다.

그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.