본문 바로가기

개발/JAVASCRIPT

[jqGrid] 특정 행의 글자 색깔 바꾸기

// 모든 데이터와 프로세스가 로딩 완료 되었을 때
gridComplete: function(){ 
	var rowIds = mygrid.getDataIDs();
	var rowData = mygrid.getRowData();
				
	// 입고 요청일이 지난 입고 대기건 행 색깔 변경
	$.each(rowData, function(idx, rowId){
		rcvDate = new Date(rowId.RECEIVING_REQUEST_DATE);
		if( rcvDate < today && rowId.RECEIVING_STATUS == '입고대기' ) {
			mygrid.jqGrid('setRowData', rowIds[idx], false, {color:'red'});
		}
	});
},

 

중요한 부분은 

mygrid.jqGrid('setRowData', rowIds[idx], false, {color:'red'});

setRowData이다.

 

$("#gridName).jqGrid('setRowData', rowId, data, cssProp);

2번째 파라미터는 그 row의 id를 적어 주어야 함

3번째 파라미터는 변경할 data를 적어주면 되는데, 지금의 경우처럼 글자색만 바꾸는 경우에는 false로 지정해준다.

4번째 파라미터는 class명으로 넣어주어도 된다.

이 구문은

$("#gridName).setRowData(rowId, data, cssProp);

이렇게 바뀔 수 있당.

 

 

 

혹은 대표님이 바라시던 다른 방법(formatter 사용)

function fn_receiving_yn(cellvalue, options, rowObject){
	var rcvDate = new Date(rowObject.RECEIVING_REQUEST_DATE);
	var fontStyle = '';
	if( rcvDate < today && cellvalue == 'N' ) fontStyle = 'style="color:red"';
	return (cellvalue == 'N') ? "<p " + fontStyle + ">입고대기</p>" : "<p>입고완료</p>";
}

여기서 rowObject는 그 해당 행의 object이다.

 

 

반응형