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

추가된 단축키의 Undo 적용여부 > Q&A | 토론

본문 바로가기

SpreadJS

Q&A | 토론

PureJS 추가된 단축키의 Undo 적용여부

페이지 정보

작성자 망개홀릭스 작성일 2021-09-27 09:36 조회 1,591회 댓글 0건
제품 버전 : 14.0.10
컨트롤 이름 : commandManager, undoManager

본문

commandManager() 를 이용해서 아래와 같이 단축키를 설정했습니다.


//strikethrough (ctrl+5)

var cm = spread.commandManager();

var strikethroughCmd = {

canUndo: true,

execute: function() {

var sheet = spread.getActiveSheet();

sheet.getCell(sheet.getActiveRowIndex(), sheet.getActiveColumnIndex()).textDecoration(GC.Spread.Sheets.TextDecorationType.lineThrough);

return true;

}

};

cm.register("strikethrough", strikethroughCmd, 53, true, false, false, false );


헌데, 기본 단축키인 ctrl+z를 이용해서 undo를 하게 되면 
생성한 단축키로 적용된 셀을 건너뛰고 그 이전 셀부터 undo가 적용되고 있습니다.

커스텀 된 단축키로 변경된 내용이 undostack에 쌓이지 않는 걸로 생각되는데 
해결 방법이 있을까요?
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

PureJS Re: 추가된 단축키의 Undo 적용여부

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

페이지 정보

작성자 GCK루시 작성일 2021-09-27 15:36 댓글 1건

본문

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


단축키 명령이 적용된 셀의 undo기능이 안된다는 말씀이 맞으실까요? 맞으시다면 아래와 같이 execute 내부에 트랜잭션의 변경 사항을 실행 취소하는 메서드인 undoTransaction을 추가해 보시기 바랍니다. 자세한 코드는 아래 샘플에서 확인하실 수 있습니다.




위의 방법에도 안되실 경우,  아래 코드와 같이 options.cmd에 이름을 할당해보시길 바랍니다. 


  var strikethroughCmd = {
    canUndo: true,
    execute: function(context, options, isUndo) {
      var commands = GC.Spread.Sheets.Commands;
      console.log(isUndo)
      if (isUndo) {
        commands.undoTransaction(context, options);
        return true;
      } else {
        options.cmd = "strikethrough";
        commands.startTransaction(spread, options);
       (...)
      }
    }
  };



[undoTransaction]

https://www.grapecity.com/spreadjs/docs/v14/online/SpreadJS~GC.Spread.Sheets.Commands~undoTransaction.html?highlight=undotransaction%2C 


도움말 문서도 같이 전달 드리오니 참고 부탁 드립니다.


다른 궁금한 점이 생기면, 문의 주시기 바랍니다. 


감사합니다. 

그레이프시티 드림 



* 그레이프시티(GrapeCity)는 개발자를 위하여 ComponentOne(컴포넌트원), Spread(스프레드), ActiveReports(액티브리포츠), SpreadJS(스프레드JS), Wijmo(위즈모)와 같은 엑셀 스프레드시트 리포팅 그리드와 차트 등 다양한 종류의 .NET JavaScript(자바스크립트) 컴포넌트 툴을 생산하고있는 개발툴 전문 회사 입니다.

댓글목록

망개홀릭스님의 댓글

망개홀릭스 작성일

오~~  이거 때문에 며칠을 고민했는데 
위에 가이드 해주신 대로 options.cmd 에 추가된 커맨드 이름을 할당하고 나니 정상적으로 적용이 되네요.
감사합니다.

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