-
처음에 해당 id를 가진 row의 색상을 변경해주는방법으로 구현을 했는데
document.getElementsByClassName(id).style.backgroundColor = '#'+color;
한줄의 row색상을 바꿔서인지 한 컬럼 head 더블클릭하여 헤드 정렬 시 중복되는 cell의 서로 다른색상이 겹쳐 보이는..에러가 있어서 찾다 찾다가 cell 하나하나 색상을 변경해주는 방법을 선택했다.
방법은 cellclassname 속성에 classname을 주고싶은 대로 나눠서 준 다음 해당 class에 색상을 적용하면 된다.
ex) 그리드 내용 이 아래와 같다면 김미미가 여자니까 첫번째 row는 노랑 , 김철수는 남자니까 두번째 해당 row에는 보라색을 줘보자.
번호 이름 성별 블라 블라 블라 1 김미미 여 blah blah blah 2 김철수 남 blah blah blah (1) 그리드 초기화 function setGrid(){ //cellclassname에 들어갈 class를 정하는 함수 var cellclass = function (row, columnfield, value, rowData, some) { // 넘어오는 parameter 값들 확인 console.log('row', row); console.log('columnfield', columnfield); console.log('value', value); console.log('rowData',rowData); console.log('some', some); //상태구분 비교값 초기화 var gender_desc = rowData.gender_desc; // 성별 var colorclass = gender_desc == "F" ? "femaleColor" : "maleColor" // 색상class이름 // class리턴 return colorclass; } var table_id = "#cell_color_example_grid"; var column = = [ {label:"key_" , name:"key_" , width:100,hidden:true, key:true}, {label:"이름" , name:"loan_lib_name" , width:125 , cellclassname : cellclass }, {label:"성별" , name:"gender_desc" , width:120 , cellclassname : cellclass }, ]; var option = { ... 기타등등 옵션 sortEvent:function (){ // sortEvent에 컬러를 주는함수를 한번 더 호출해야 색상이 섞이지 않습니다. initColor(); } }; $('#current_loan_list_grid').jqxGrid({ sortable: true}); } (2) 데이터 받아서 그리드 그리는 함수에 initColor(); 를 호출시켜주세요 (3) 실질적으로 cell에 color를 적용하는 함수 function initColor(){ // 저는 colorSetting을 선택 후 저장 -> localStorage에서 꺼내와서 썼지만 // 예시기 때문에 그냥 color setting을 하는것만 간단하게 적겠습니다! var colorArray = [ {color:"FAF4C0", column:"femaleColor"}, {color:"E8D9FF", column:"maleColor"} ]; colorArray.forEach(function (item) { var myElement = document.querySelectorAll(".grid_"+item.column+""); myElement.forEach(function(inner){ inner.style.backgroundColor = "#"+item.color; }); }) }
'Front-end > Javascript' 카테고리의 다른 글
this 바인딩 (0) 2021.03.23 자바스크립트 객체의 깊은 복사 (0) 2020.05.11 JqGrid ) 특정 셀 select 옵션 나타내기 / 옵션 선택 후 보여지는 값 바꾸기 (0) 2020.05.07 JqGrid ) 그리드 cell에 input text, combobox 구현 & 수정시 그리드에 값 적용시키기 (0) 2020.04.29 제어 대상 찾기 - getElementById, querySelector ... (0) 2020.03.05