Thursday, July 02, 2009

[TIP] 트랜젝션 처리후 트랜젝션 수행한 ROW로 자동이동

얼마전에 요구사항이 나와서 만들어본 User Defined Object

 

내부적으로 이벤트 처리를 가로채서 처리하기 때문에 별도의 코딩이 거의 필요없다

 

소스 (script)

-------------------------------------------------------------------------------


/**
 * 단일건 트랜젝션 처리후, 해당 ROW및 컬럼으로 포지션을 이동시켜 주는 객체
 * - notice : 본 함수는 일반 자바스크립트 함수가 아니며, User Defined Object이다.
 *               따라서 본 객체는 단독적으로 실행이 되지 않는다.
 * - p_GridObj : 그리드 오브젝트
 * - p_CheckColid : 그리드의 체크박스 컬럼ID
 **/
function CheckColumnFocus(p_GridObj, p_CheckColid) {
 var checkColid = p_CheckColid;
 var gridObj = p_GridObj;
 var row = -1;
 var dsObj = eval(p_GridObj.DataId);

 // 내부적으로 사용되는 메소드.[직접적으로 사용되지 않음]
 this.setFocus = function() {
  gridObj.ReDraw = false;
  var obj = eval(gridObj.DataId);
  obj.RowPosition = row;
  obj.NameValue(row, checkColid) = "T";
  obj.resetstatus();
  gridObj.ReDraw = true;
  gridObj.SetColumn(checkColid);
 
 }

 // 내부적으로 사용되는 메소드.[직접적으로 사용되지 않음]
 this.getInfo = function (p_row, p_colid) {
  var obj = eval(gridObj.DataId);
  if (obj.NameValue(p_row, checkColid) ==  "T") {
   row = p_row;
  }
 }

 gridObj.attachEvent ('OnClick', this.getInfo);
 dsObj.attachEvent('OnLoadCompleted', this.setFocus);
}

 

적용하는건

-------------------------------------------------------------------------------

 var ccf = new CheckColumnFocus(tb_Grid, "Use"); // 주의 : 한번만 객체 생성할것!

 

onload같은 이벤트에서 한번만 처리해 주면 된다.

 

No comments: