티스토리 뷰

데이터셋에 조회된 쿼리 결과를 바로사용하지 않고 setColumn(), addRow()등의 함수를 통해 조회된 데이터를 한 번 더 가공한 뒤, 그리드에 렌더링해야할 때가 있다.

 

이럴 경우 데이터셋의 RowType은 INSERT 혹은 UPDATE 상태로 변경되는데, 데이터셋의 ①RowType을 임의로 변경하는 방법과  변경사항을 적용하면서도 ②변경내역이 없었던것 처럼 RowType을 유지하는 방법에 대해 알아본다.

 

Dataset > updatecontrol

updatecontrol이 디폴트 값인 true로 설정된 경우, 데이터셋 변경사항이 있을 경우(삽입/수정/삭제 등) 변경 종류에 따라 RowType이 자동으로 변경된다.

 

updatecontrolfalse로 변경하면 RowType이 더 이상 변경되지 않으며, 사용자가 직접 RowType을 변경할 수 있게된다. 하지만 사용자가 변경해주지 않을경우 데이터셋에 변화가 있더라도 rowtype이 더 이상 변하지 않기 때문에 updatecontrol을 false로 고정시켜 놓는 것은 권장하지 않는다. 

 

set_updatecontrol(false)  → setRowType → set_updatecontrol(true)

Script상에서 setRowType함수를 통해 직접 updatecontrol을 변경할 수 있다. 이 때 set_updatecontrol이 true인 상태에서 setRowType을 호출하면 아무 변화가 없으니 setRowType을 호출하기 전엔 set_updatecontrol(false)를 줘야한다.

 

setRowType을 통해 RowType변경을 완료한 이후에는 updatecontrol 값을 다시 true로 되돌려준다. 

this.Dataset00.setRowType(rowposition, rowType)
this.Dataset00.set_updatecontrol(false);
this.Dataset00.setRowType(0, "I"); //또는 setRowType(0, Dataset.ROWTYPE_INSERT)
this.Dataset00.setRowType(0, "U"); //또는 setRowType(0, Dataset.ROWTYPE_UPDATE)
this.Dataset00.setRowType(0, "D"); //또는 setRowType(0, Dataset.ROWTYPE_DELETE)
this.Dataset00.setRowType(0, "그외의 값들"); //setRowType(0, Dataset.ROWTYPE_NORMAL)
this.Dataset00.set_updatecontrol(true);

 

try-catch-finally를 이용한 보완

updatecontrol 값이 false처리된 상태일 때 코드에서 exception이 발생할 수 있다. 이렇게 되면 updatecontrol이 true로 변경되지 못하고 프로그램이 수행되기 때문에 로직상 혼돈이 올 수 있다.

 

finally 부분에서 set_updatecontrol(true) 처리를 해줌으로써 이를 방지할 수 있다.

try {
	
    this.Dataset00.set_updatecontrol(false);
    
    //exception 발생
    
    this.Dataset00.set_updatecontrol(true); //수행 X
    
} catch (error) {
    //예외처리	
} finally {
    this.Dataset00.set_updatecontrol(true); // exception 시에도 수행
}

 

applyChange

데이터셋의 모든 행의 RowType을 NORMAL로 변경하고 싶다면 applyChange()를 이용해도 된다. applyChange()함수는 updatecontrol 상태와 무관하게 항상 적용가능하다.

this.Dataset00.applyChange();

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함