FuckingNexacro
list 데이터 다루기
데이터 넣기
데이터그리드에서 취급하기 위한 데이터들을 넣습니다. 넣은 데이터들은 데이터그리드를 통해 편집할 수 있습니다.
check 생성자 호출 시에도 데이터 넣기 기능은 포함되어있습니다.
데이터그리드를 초기화하는 생성자 호출에도 데이터를 넣는 과정이 포함되어있으며, 해당 페이지에서 안내드리는 방법은 생성자까지 호출해서 이미 만들어진 데이터그리드를 재사용하는 방법과 맥락을 같이 합니다.close 데이터그리드가 "읽기전용" 상태인 경우에는 setDataList 를 호출할 수 없습니다.
데이터그리드 읽기전용/쓰기모드는 여기 를 참고해주세요. getDataList 는 "읽기전용" 상태라도 정상작동합니다.palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.setDataList([ { "keyColumn": 1 }, // 굳이 keyColumn 으로 지정되어야 할 필요는 없고 자유 객체형식 { "keyColumn": 2 }, { "keyColumn": 3 }, ... ]); // 배열을 전달함으로써 데이터그리드에 데이터가 추가됨
데이터 꺼내기
데이터그리드에서 관리/편집 중인 데이터를 모두 획득합니다. 데이터를 획득하더라도 관리/편집 중인 데이터는 모두 유지됩니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.getDataList(); // 관리 and 편집중인 데이터를 배열로 획득함
체크된 데이터 꺼내기/설정하기
데이터그리드에서 관리/편집 중인 데이터 중 체크박스에 체크가 된 데이터를 모두 획득합니다. 데이터를 획득하더라도 관리/편집 중인 데이터는 모두 유지됩니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.getCheckedDataList(); // 관리 and 편집중인 데이터 중 체크박스에 체크가 된 데이터를 배열로 획득함 fuckingNexacro.setCheckedDataList([{ "keyColumn": 1 }, { "keyColumn": 2 }, ...]); // 체크되어있는 모든 항목의 체크를 해제하고 아규먼트로 전달된 데이터만 체크상태가 되도록 설정
warning hideCheckboxColumn 등으로 체크박스가 보여지지 않을 때는 데이터 및 함수의 눈버깅이 극도로 어려워질 수 있습니다.
데이터를 체크박스로 특정한 다음 hideCheckboxColumn() 을 호출해 숨기더라도 체크박스가 활성화된 항목은 정상적으로 꺼내지지만 체크박스가 보이지 않음으로 인해 어째서 이 데이터가 반환되는가 추적을 할 수 없는 상황이 발생할 수 있습니다. 헛짓거리 뻘짓에 주의바랍니다.
선택된 데이터 꺼내기/설정하기
데이터그리드에서 관리/편집 중인 데이터 중 선택된 데이터들을 모두 획득합니다. 데이터를 획득하더라도 관리/편집 중인 데이터는 모두 유지됩니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.getSelectedDataList(); // 현재 데이터그리드에 선택된 데이터를 배열로 획득함 fuckingNexacro.setSelectedDataList([{ "keyColumn": 1 }, { "keyColumn": 2 }, ...]); // 선택되어있는 모든 항목의 선택을 해제하고 아규먼트로 전달된 데이터만 선택상태가 되도록 설정
check FuckingNexacro 에서는 Ctrl 클릭을 통한 개별선택, Shift 클릭을 통한 연속선택을 지원합니다.
???: 이런건 기본이잖아요? 만들기 쉽잖아요...? 안된다구요? 외않돼죠?
데이터 추가하기
관리/편집 중인 데이터를 유지한 상태에서 최하단(마지막)에 지정된 데이터(혹은 데이터 목록)를 추가합니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.addDataList([ { "value": "new data 1" }, { "value": "new data 2" }, { "value": "new data 3" } ]); // 데이터그리드에 들어있는 데이터를 보존하고 최하단(마지막)에 전달된 배열을 이어서 추가
데이터 병합하기
문질문질
데이터그리드 생성 시 지정한 keyColumn 을 기준으로, 이미 존재하는 데이터라면 수정되고 존재하지 않는 데이터라면 최하단(마지막)에 신규로 추가됩니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.mergeDataList([ { "keyColumn": 1, "column0": "new data to update when origin keyColumn item is already exists" }, { "keyColumn": 2, "column1": "new data to insert when origin keyColumn item is not exists" }, { "keyColumn": 3, "column2": "적폐척살" } ]);
warning mergeDataList 에 전달되어야 하는 아규먼트는 반드시 배열이어야 합니다.
배열이 아닌 단건 객체로 전달해도 최대한 정상적으로 반영이 되도록 보조하나 권장되는 사용방법이 아니며, 객체를 전달함으로써 발생하는 기능하자 등의 오류에는 대응 및 보장을 하지 않습니다.
mergeDataList 잖아...
데이터 일괄수정하기
데이터그리드에 수정조건식을 지정하여 관리/편집중인 모든 데이터에 일괄 적용합니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.bulkEdit(dataItem => { return 수정된_dataItem; }); // 수정조건식(function)을 아규먼트로 전달, 수정조건식은 반드시 return 을 포함해야함
warning forEach 가 아닌 map 함수식을 요구하기 때문에 수정조건식을 지정할 때 반드시 parameter 로 입력받은 데이터를 return 해야 합니다.
수정조건식이 return 없이 데이터를 반환하지 않는 경우 오류를 반환합니다.
데이터 삭제하기
관리/편집 중인 데이터그리드에서 특정 데이터를 삭제합니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.deleteDataList([ { keyColumn: 1 }, { keyColumn: 2 }, { keyColumn: 3 }, ... ]); // 삭제하고자 하는 항목의 keyColumn 값을 배열로 전달
warning deleteDataList 에 전달되어야 하는 아규먼트는 반드시 배열이어야 합니다.
mergeDataList 와는 달리 아규먼트를 객체 배열이 아닌 객체 단일로 보낼 경우 에러를 발생합니다.
데이터 전부 털어버리기
개털림
관리/편집 중인 데이터그리드의 모든 데이터를 삭제합니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.dropDataList(); // 모든 데이터를 삭제처리하여 빈 데이터그리드가 되도록 함.
데이터 정렬하기
데이터의 정렬기준 및 정렬규칙을 정하여 재배치합니다.
close 데이터그리드가 "읽기전용" 상태인 경우에는 sort 를 호출할 수 없습니다.
데이터그리드 읽기전용/쓰기모드는 여기 를 참고해주세요. "읽기전용"으로 설정하기 전 적용된 정렬은 유지됩니다.palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.sort({ key: "..." }, "asc"); // 특정된 열을 기준으로 오름차순으로 정렬 fuckingNexacro.sort("...", "asc"); // 별로 추천하지는 않음, 문제 발생시 배포자에게 책임 없음 fuckingNexacro.sort({ key: "..." }, "desc"); // 특정된 열을 기준으로 내림차순으로 정렬 fuckingNexacro.sort({ key: "..." }); // 특정된 열을 기준으로 반전정렬, 반전정렬 대상 열이 아닌 경우에는 오름차순으로 호출 고정 fuckingNexacro.sort(null); // 모든 열 정렬기준을 해제, 디폴트로 keyColumn 이 오름차순으로 정렬됨
열을 더블클릭해서 정렬되도록 응용하는것도 가능합니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.setOnColumnDoubleClick(columnItem => fuckingNexacro.sort(columnItem)); // setOnColumnDoubleClick 메소드를 이용해 열 헤더의 더블클릭에 정렬기능을 붙이는 방법
check 열을 더블클릭해보세요.
새로운 정렬기준일 경우에는 최초 오름차순, 반복실행 시 내림차순과 오름차순을 반복하는 반전정렬이 실행됩니다.close 기본 기능이 아닙니다!!
setOnColumnDoubleClick 은 sort 뿐만이 아니라 이벤트 등록 메소드로써 다른 이벤트를 등록하여 사용할 수도 있습니다. 열 헤더 더블클릭이 바로 데이터 정렬 기능이 실행되도록 기본기능으로 포함시킬 예정은 없습니다.
조건부 데이터 숨기기
관리/편집 중인 데이터그리드에서 조건식에 만족하지 못하는 데이터들을 숨깁니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.setDataFilter(dataItem => dataItem["idx"] % 2 == 0); // 조건식을 지정하여 조건식을 만족하지 못하는 데이터들을 숨김, 조건식은 idx 가 짝수인 데이터만을 노출하고 나머지는 숨기는 예제 fuckingNexacro.setDataFilter(null); // 조건식 해제, 모든 데이터가 보여짐
warning 필터가 적용된 상태에서 addDataList 호출 시 화면에 아무런 변화가 없을 수 있습니다.
데이터의 편집이 요구되는 서비스 및 페이지에서는 setDataFilter 메소드의 사용을 재고해주세요.
데이터 찾기
브라우저의 "페이지 내 찾기" 기능과 별개로 데이터를 찾는 기능을 제공합니다. 단순히 데이터의 텍스트만을 찾는 기능이 아닌 수식조건을 만족하는 찾기 기능도 제공됩니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.info 테스트 데이터로 https://dummyjson.com/ 의 데이터를 사용하였습니다.
fuckingNexacro.findFirst(dataItem => dataItem["idx"] > 100 && dataItem["username"].indexOf("fuckingNexacro") > -1); // 검색 조건식을 지정 fuckingNexacro.findNext(); // 검색 조건식을 유지한 채로 1단계 씩 순회, 마지막 검색 데이터에 이르렀을 경우 첫번째 검색 데이터로 반복 순회
warning findNext 호출 시 뷰포트 밖에 있는 데이터를 찾은 경우 자동으로 스크롤이 이동합니다.
또한, 순회중인 경우 순회차례인 항목에.fn_mouseenter_data
클래스 스타일이 적용됩니다.
데이터 위치로 스크롤
데이터가 배치된 위치로 스크롤을 합니다. 인자는 데이터 목록 중 몇번째에 위치해있는지(index) 정수값을 전달합니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.info 테스트 데이터로 https://microsoftedge.github.io/Demos/json-dummy-data/512KB-min.json 의 데이터를 사용하였습니다.
fuckingNexacro.goToScroll(100); // 데이터목록 중 100번째 데이터 항목으로 스크롤
warning setDataFilter 를 통해 스크롤 타겟이 되는 데이터가 보여지지 않을 경우에는 스크롤되지 않습니다.
setDataFilter 의 원리는 조건미달 데이터를 숨기는 것이 아닌 아예 생성을 하지 않는 구조이기 때문에 작동되지 않습니다.
조건부 행에 커스텀 클래스 부여
CSS 적용 및 이벤트 등록을 위한 커스텀 클래스를 부여할 수 있습니다. 취지는 이벤트 등록보다는 CSS 적용을 위한 기능입니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.setRowClass((dataItem, index) => dataItem["name"] == "fuckingNexacro"? [ "custom_class_00", "custom_class_01" ]: []); // 조건에 해당되면 class 에 "custom_class_00 custom_class_01" 가 추가되도록 정의함
warning 행 단위로 적용되는 기능입니다.
열 단위로 적용되는 기능은 setCellClass 메소드를 참조하세요.
조건부 열에 커스텀 클래스 부여
CSS 적용 및 이벤트 등록을 위한 커스텀 클래스를 부여할 수 있습니다. 취지는 이벤트 등록보다는 CSS 적용을 위한 기능입니다.
palette 해당 데이터그리드에 사용된 CSS 는 이곳을 참고하시기 바랍니다.
이후 다른 문서에서도 해당 CSS 가 공통적으로 사용되나 어디까지나 예시일 뿐이며, 사용자가 직접 CSS 를 자유자재로 수정하여 사용할 수 있습니다.
fuckingNexacro.setCellClass((columnItem, dataItem) => columnItem["key"] == "name" && dataItem[columnItem.key] == "fuckingNexacro"? [ "custom_class_00", "custom_class_01" ]: []); // 조건에 해당되면 class 에 "custom_class_00 custom_class_01" 가 추가되도록 정의함
warning 열 단위로 적용되는 기능입니다.
setRowClass
와는 인자에서index
를 받는지,columnItem
을 받는지의 차이가 있습니다.