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

그리드 header 클릭 이벤트 문의 입니다. > Q&A | 토론

본문 바로가기

ReactJS 그리드 header 클릭 이벤트 문의 입니다.

페이지 정보

작성자 토끼바람 작성일 2021-08-24 17:36 조회 2,843회 댓글 0건
제품 버전 : 5.20211.794
컨트롤 이름 : FlexGrid

본문

그리드에서 헤더를 클릭했을때 별도 이벤트와 구분자를 받아서 함수 처리가 가능한지요?


그리드 헤더 글자 옆에 이미지를 추가하고 이미지를 클릭할때 이벤트를 발생하여 팝업을 호출 하거나


혹은 컬럼을 숨김 처리를 할 수있는지 문의 합니다.


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

댓글목록

등록된 댓글이 없습니다.

1 답변

ReactJS Re: 그리드 header 클릭 이벤트 문의 입니다.

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

페이지 정보

작성자 GCK루시 작성일 2021-08-26 09:45 댓글 0건

본문

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


문의 주신 특정 그리드 열 헤더에 이미지 삽입 후, 이벤트 처리에 대한  문의 답변 드립니다.

해당 기능을 구현하기 위해서 먼저 itemFormatter 속성에서 특정 컬럼 헤더 조건문을 통과한 셀의 innerHTML에 img 태그를 사용하여 기존 값과 함께 이미지를 추가할 수 있습니다. 

그 다음, 그리드 hostElement의 mousedown 이벤트 내에서 주어진 포인트에 대한 정보를 주는 hitTest를 통해 해당 이미지를 클릭했는지를 classList.contains() 메서드를 통해 확인하실 수 있습니다. 이미지를 클릭했다면 그리드의 기본 동작인 정렬을 취소하고 구현하고자 하는 코드를 입력하여 주시길 바랍니다.  아래 코드를 참고하시길 바랍니다.


  itemFormatter(panel, r, c, cell) {
    if (panel.cellType == wjGrid.CellType.ColumnHeader && c == 1) {
      let _old = cell.innerHTML;
      cell.innerHTML =
        `<img src='${image}' id='img' class="imageAdd" onClick={this.click} />` +
        _old;
    }
  }

  initialized(grid) {
    this.grid = grid;
    console.log(grid.columnHeaders.getCellElement(0, 0), "??");
    grid.addEventListener(grid.hostElement, "mousedown", (e) => {
      let ht = grid.hitTest(e);
      var col = ht.col;

      if (e.target.classList.contains("imageAdd")) {
        grid.allowSorting = false;
       // 코드를 입력하여 주시길 바랍니다.
      } else {
        grid.allowSorting = true;
      }
    });
  }

(...)

        <FlexGrid
          itemsSource={this.state.data}
          itemFormatter={this.itemFormatter.bind(this)}
          initialized={this.initialized.bind(this)}
        >
  
        </FlexGrid>
 

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


감사합니다. 

그레이프시티 드림 


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

댓글목록

등록된 댓글이 없습니다.

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