관리자 > (메인)검수등록대기건수 > 좌표수정 목록 - 항목 컬럼 클릭하여 정렬(프로젝트명,공급자,입력일시,공급현황,등록자)

main
유지인 2025-10-23 14:39:46 +09:00
parent 7b5c1a5146
commit 0a3a2c4ce3
3 changed files with 52 additions and 2 deletions

View File

@ -99,6 +99,17 @@ public class HoleCoordinateController {
int page = params.get("page").toString() != null ? Integer.parseInt(params.get("page").toString()) : 1; int page = params.get("page").toString() != null ? Integer.parseInt(params.get("page").toString()) : 1;
int pageSize = params.get("pageSize") != null ? Integer.parseInt((String)params.get("pageSize")) : 10; // 기본값 10 int pageSize = params.get("pageSize") != null ? Integer.parseInt((String)params.get("pageSize")) : 10; // 기본값 10
// 정렬 필드/방향 처리
String sortField = (String) params.get("sort[0][field]");
String sortDir = (String) params.get("sort[0][dir]");
// 기본 정렬 지정 (없을 경우)
if (sortField == null || sortField.isEmpty()) sortField = "datetime";
if (sortDir == null || sortDir.isEmpty()) sortDir = "desc";
// MyBatis에 넣을 때는 깔끔하게 키 이름 정리
params.put("sortField", sortField);
params.put("sortDir", sortDir);
int nCls = MyUtil.getIntegerFromObject(request.getSession().getAttribute("CLS")); int nCls = MyUtil.getIntegerFromObject(request.getSession().getAttribute("CLS"));
strUtil sUtil = new strUtil(); strUtil sUtil = new strUtil();

View File

@ -98,7 +98,39 @@
<![CDATA[ <![CDATA[
SELECT TB.* SELECT TB.*
FROM ( FROM (
SELECT ROW_NUMBER() OVER (ORDER BY T.DATETIME DESC) AS RN, SELECT ROW_NUMBER() OVER (ORDER BY
]]>
<choose>
<when test="sortField == 'projectName' and sortDir == 'asc'">
T.PROJECT_NAME ASC
</when>
<when test="sortField == 'projectName' and sortDir == 'desc'">
T.PROJECT_NAME DESC
</when>
<when test="sortField == 'userName' and sortDir == 'asc'">
T.USER_NAME ASC
</when>
<when test="sortField == 'userName' and sortDir == 'desc'">
T.USER_NAME DESC
</when>
<when test="sortField == 'createName' and sortDir == 'asc'">
T.CREATE_NAME ASC
</when>
<when test="sortField == 'createName' and sortDir == 'desc'">
T.CREATE_NAME DESC
</when>
<when test="sortField == 'datetime' and sortDir == 'asc'">
T.DATETIME ASC
</when>
<otherwise>
T.DATETIME DESC
</otherwise>
</choose>
<![CDATA[
) AS RN,
CLASS_CODE, PROJECT_CODE, REPORT_TYPE, REPORT_TYPE_NAME, CLASS_CODE, PROJECT_CODE, REPORT_TYPE, REPORT_TYPE_NAME,
REPLACE(REPLACE(PROJECT_NAME, '"',''''), '''', ' ') AS PROJECT_NAME, REPLACE(REPLACE(PROJECT_NAME, '"',''''), '''', ' ') AS PROJECT_NAME,
USERID, USER_NAME, STATE, STATE_NAME, CREATE_NAME, USERID, USER_NAME, STATE, STATE_NAME, CREATE_NAME,

View File

@ -194,7 +194,7 @@ function reloadGrid() {
}, },
columns: [ columns: [
{ field: "rowNumber", width: 50, title: "순번", template: "<span class='row-number'></span>" }, { field: "rowNumber", width: 50, title: "순번", template: "<span class='row-number'></span>", sortable: false },
{ {
field: "projectName", field: "projectName",
width: 262, width: 262,
@ -233,6 +233,7 @@ function reloadGrid() {
{ {
field: "ins", field: "ins",
width: 60, title: "재등록", width: 60, title: "재등록",
sortable: false,
template: "<div class='td-data'>#= insBtnTemplate(data.reportType, data.projectCode, data.createUserid, data.expertFile, data.ins) #</div>" template: "<div class='td-data'>#= insBtnTemplate(data.reportType, data.projectCode, data.createUserid, data.expertFile, data.ins) #</div>"
}, },
], ],
@ -253,6 +254,12 @@ function reloadGrid() {
template: "등록된데이터가 없습니다." template: "등록된데이터가 없습니다."
}, },
dataBound: onDataBound, dataBound: onDataBound,
// 🔹 정렬 이벤트 추가
sort: function(e) {
var grid = this;
// 정렬 변경 시 첫 페이지로 이동
grid.dataSource.page(1);
},
}); });
} }