반응형
그리드 셀 클릭 시 발생하는 이벤트(oncellclick)에서 바인드 된 컬럼명을 알아내보자.
this.grd00_oncellclick = function(obj:nexacro.Grid,e:nexacro.GridClickEventInfo)
{};
oncellclick의 이벤트 객체인 GridClickEventInfo를 도움말에 검색해보자.
딱히 바인드 된 컬럼명을 가져올 수 있는 속성은 없다. 그나마 사용할만한 속성은 e.cell과 e.col이다.
클릭할때마다 무슨 값이 나오는지 확인해보자.
this.grd00_oncellclick = function(obj:nexacro.Grid,e:nexacro.GridClickEventInfo)
{
this.sta00_00.set_text("e.cell : " + e.cell + ", e.col : " + e.col);
};
우리가 필요한 건 바인딩 된 "컬럼명"이다. 지금 상태로는 클릭한 col의 인덱스만 알 수 있다.
생각해보면 그리드에 바인딩 할 때 text에 바인딩 컬럼명을 입력한다. 그럼 getCellProperty()를 통해 컬럼값을 가져올 수 있지 않을까 생각했다.
클릭된 cell의 text 값을 가져오자.
this.grd00_oncellclick = function(obj:nexacro.Grid,e:nexacro.GridClickEventInfo)
{
this.sta00_00.set_text(obj.getCellProperty("body", e.cell, "text"));
};
바인드 컬럼명 정보를 가져오긴 하는데 bind:XXX 형식으로 가져온다. 데이터를 정제해주자.
this.grd00_oncellclick = function(obj:nexacro.Grid,e:nexacro.GridClickEventInfo)
{
this.sta00_00.set_text(this.fnSetBindingColumnId(obj.getCellProperty("body", e.cell, "text")));
};
// sText는 bind:columnId 형태로 넘어온다.
this.fnSetBindingColumnId = function(sText)
{
// sText에 대한 검증 생략
var arrText = sText.split(":");
return arrText[1];
};
잘 가져온다!
내가 작성했던 함수 fnSetBindingColumnId() 같이 단순한 방법 말고 정규식을 이용한 방법도 있으니 원하는 방식으로 구현하면 될 것 같다.
반응형