diff --git a/src/main/resources/mybatis/mapper/levy/levy/LevyMapper_maria.xml b/src/main/resources/mybatis/mapper/levy/levy/LevyMapper_maria.xml
index ad0bcd9..35bea1e 100644
--- a/src/main/resources/mybatis/mapper/levy/levy/LevyMapper_maria.xml
+++ b/src/main/resources/mybatis/mapper/levy/levy/LevyMapper_maria.xml
@@ -71,7 +71,19 @@
AND p.LOTNO_SNO = #{schLotnoSno}
- ORDER BY CRDN_NO DESC
+
+
+
+
+ ORDER BY ii.CRDN_NO ASC
+
+
+ ORDER BY ii.CRDN_NO DESC
+
+
+ ORDER BY ii.CRDN_NO DESC
+
+
LIMIT #{startIndex}, #{perPage}
diff --git a/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml b/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml
index 297057d..8179382 100644
--- a/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml
+++ b/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml
@@ -79,7 +79,19 @@
AND p.LOTNO_SNO = #{schLotnoSno}
- ORDER BY ii.CRDN_NO DESC, a.ACT_NO ASC
+
+
+
+
+ ORDER BY ii.CRDN_NO ASC, a.ACT_NO ASC
+
+
+ ORDER BY ii.CRDN_NO DESC, a.ACT_NO ASC
+
+
+ ORDER BY ii.CRDN_NO DESC, a.ACT_NO ASC
+
+
LIMIT #{startIndex}, #{perPage}
diff --git a/src/main/webapp/WEB-INF/views/levy/levy/list.jsp b/src/main/webapp/WEB-INF/views/levy/levy/list.jsp
index 18c70e3..88dac8d 100644
--- a/src/main/webapp/WEB-INF/views/levy/levy/list.jsp
+++ b/src/main/webapp/WEB-INF/views/levy/levy/list.jsp
@@ -128,6 +128,10 @@
var SEARCH_MASTER_COND = {};
+ // 중요로직: 시스템 표준 정렬 패턴 적용
+ // - 정렬 파라미터(sortColumn, sortAscending)는 그리드 기본 params에 자동 포함됨
+ // - JSP에서 수동으로 정렬 파라미터를 바인딩하지 않음(시스템 메뉴 패턴 준수)
+
// 페이징 정보를 저장할 전역 변수
var GRID_PAGINATION_INFO = {
totalCount: 0,
@@ -211,7 +215,7 @@
gridConfig.setOptGridId('masterGrid'); // 그리드를 출력할 Element ID
gridConfig.setOptGridHeight(170); // 그리드 높이(단위: px)
gridConfig.setOptRowHeight(30); // 그리드 행 높이(단위: px)
- gridConfig.setOptRowHeaderType('rowNum'); // 행 첫번째 셀 타입(rowNum: 순번, checkbox: 체크박스, '': 출력 안함)
+ gridConfig.setOptRowHeaderType(''); // 행 첫번째 셀 타입(rowNum: 순번, checkbox: 체크박스, '': 출력 안함)
gridConfig.setOptUseClientSort(false); // 서버사이드 정렬 false
// 페이징 옵션 설정
@@ -231,6 +235,22 @@
getGridColumns: function() {
var self = this;
return [
+ {
+ header: '번호',
+ name: '_rowNum',
+ align: 'center',
+ width: 60,
+ sortable: false,
+ formatter: function(e) {
+ // 중요로직: 서버사이드 페이징에서 역순 번호 계산
+ // totalCount - (현재페이지-1) * 페이지당항목수 - 현재행인덱스
+ var totalCount = GRID_PAGINATION_INFO.totalCount;
+ var page = GRID_PAGINATION_INFO.page;
+ var perPage = GRID_PAGINATION_INFO.perPage;
+ var rowIndex = e.row.rowKey;
+ return totalCount - (page - 1) * perPage - rowIndex;
+ }
+ },
{
header: '단속년도',
name: 'crdnYr',
@@ -312,11 +332,12 @@
},
initialRequest: false, // 초기 데이터 요청 여부
serializer: function(params) {
- setMasterSearchCond();
- SEARCH_MASTER_COND.perPage = params.perPage;
- SEARCH_MASTER_COND.page = params.page;
- var searchParams = $.param(SEARCH_MASTER_COND);
- return searchParams;
+ // 중요로직: 시스템 표준 serializer 적용
+ // - 기본 params에는 page, perPage, sortColumn, sortAscending 등이 자동 포함됨
+ // - 검색조건만 별도로 직렬화하여 결합한다.
+ setMasterSearchCond();
+ var queryParams = Object.assign({}, params, SEARCH_MASTER_COND);
+ return $.param(queryParams);
}
};
},
@@ -392,6 +413,9 @@
}
});
+ // 중요로직: 정렬은 그리드 기본 params에 의해 서버로 자동 전달됨
+ // - JSP에서 정렬 파라미터를 수동으로 세팅하지 않음(시스템 표준)
+
},
},
diff --git a/src/main/webapp/WEB-INF/views/levy/levyRelevy/list.jsp b/src/main/webapp/WEB-INF/views/levy/levyRelevy/list.jsp
index 51317f7..f938dc9 100644
--- a/src/main/webapp/WEB-INF/views/levy/levyRelevy/list.jsp
+++ b/src/main/webapp/WEB-INF/views/levy/levyRelevy/list.jsp
@@ -259,7 +259,7 @@
}
},
{ header: '단속년도', name: 'crdnYr', align: 'center', width: 80, sortingType: 'desc' },
- { header: '단속번호', name: 'crdnNo', align: 'center', width: 90 },
+ { header: '단속번호', name: 'crdnNo', align: 'center', width: 90, sortable: true },
{ header: '법정동', name: 'stdgEmdCdNm', align: 'center', width: 90 },
{ header: '지역구분', name: 'rgnSeCdNm', align: 'center', width: 100 },
{ header: '적발방법', name: 'dsclMthdCdNm', align: 'center', width: 120 },
diff --git a/src/main/webapp/WEB-INF/views/noti/list.jsp b/src/main/webapp/WEB-INF/views/noti/list.jsp
index 21263b5..5f03612 100644
--- a/src/main/webapp/WEB-INF/views/noti/list.jsp
+++ b/src/main/webapp/WEB-INF/views/noti/list.jsp
@@ -117,6 +117,10 @@
'use strict';
var SEARCH_MASTER_COND = {};
+
+ // 중요로직: 시스템 표준 정렬 패턴 적용
+ // - 정렬 파라미터(sortColumn, sortAscending)는 그리드 기본 params에 자동 포함됨
+ // - JSP에서 수동으로 정렬 파라미터를 바인딩하지 않음(시스템 메뉴 패턴 준수)
// 페이징 정보 저장
var GRID_PAGINATION_INFO = {
@@ -174,7 +178,7 @@
gridConfig.setOptGridId('masterGrid');
gridConfig.setOptGridHeight(170);
gridConfig.setOptRowHeight(30);
- gridConfig.setOptRowHeaderType('rowNum');
+ gridConfig.setOptRowHeaderType('');
gridConfig.setOptUseClientSort(false);
gridConfig.setOptPageOptions({
useClient: false,
@@ -187,6 +191,22 @@
getGridColumns: function() {
return [
+ {
+ header: '번호',
+ name: '_rowNum',
+ align: 'center',
+ width: 60,
+ sortable: false,
+ formatter: function(e) {
+ // 중요로직: 서버사이드 페이징에서 역순 번호 계산
+ // totalCount - (현재페이지-1) * 페이지당항목수 - 현재행인덱스
+ var totalCount = GRID_PAGINATION_INFO.totalCount;
+ var page = GRID_PAGINATION_INFO.page;
+ var perPage = GRID_PAGINATION_INFO.perPage;
+ var rowIndex = e.row.rowKey;
+ return totalCount - (page - 1) * perPage - rowIndex;
+ }
+ },
{ header: '단속년도', name: 'crdnYr', align: 'center', width: 90 },
{ header: '단속번호', name: 'crdnNo', align: 'center', width: 100, sortable: true },
{ header: '행위번호', name: 'actNo', align: 'center', width: 60 },
@@ -231,10 +251,12 @@
},
initialRequest: false,
serializer: function(params) {
- setMasterSearchCond();
- SEARCH_MASTER_COND.perPage = params.perPage;
- SEARCH_MASTER_COND.page = params.page;
- return $.param(SEARCH_MASTER_COND);
+ // 중요로직: 시스템 표준 serializer 적용
+ // - 기본 params에는 page, perPage, sortColumn, sortAscending 등이 자동 포함됨
+ // - 검색조건만 별도로 직렬화하여 결합한다.
+ setMasterSearchCond();
+ var queryParams = Object.assign({}, params, SEARCH_MASTER_COND);
+ return $.param(queryParams);
},
};
},
@@ -296,6 +318,9 @@
NotiList.openImpltTaskPopup(NotiList.selectedRow.crdnYr, NotiList.selectedRow.crdnNo, NotiList.selectedRow.impltTaskSeCd);
}
});
+
+ // 중요로직: 정렬은 그리드 기본 params에 의해 서버로 자동 전달됨
+ // - JSP에서 정렬 파라미터를 수동으로 세팅하지 않음(시스템 표준)
}
},