2012-05-11 2 views
0

SlickGrid를 사용하여 웹 응용 프로그램을 개발하고 있습니다.여러 SlickGrid에서 일반 포맷터를 사용하려면 어떻게해야합니까?

우리의 응용 프로그램은 다른 탭/페이지에 많은 그리드를 가지고 있으며, 그 이유 때문에 필자가 별도의 그리드를 위해 동일한 기능을 반복적으로 쓰지 않도록 일부 코드를 리펙토링 할 수 있는지 궁금합니다.

예 : 우리는 여러 트리 격자를 갖고 있기 때문에 I는 (. 트리 구조를 구현하는 포맷터를 각 계통에 대해 동일하다)를 정의 포매터 필요 : 함수 PercentCompleteFormatter (행 셀 값 columnDef, 데이터 컨텍스트)

그리드 나 데이터 뷰를 arguement로 넘길 수 없다는 가정하에 (위의 서명을 모든 사용자 정의 포매터에 사용해야한다고 가정합니다.) 기본적으로 그리드를 생성하는 각 코드 블록 내에 동일한 포맷터 코드가 있어야합니다 .

"일반"포매터를 만들고 모든 그리드에 적용 할 수있는 방법이 있습니까?

같은 질문은 정렬, 필터링 등과 같은 것에 적용됩니다. 그러나 위의 설명은 내가 구하려고 노력하는 것을 다루기를 바랍니다.

감사합니다.

답변

5

jQuery의 .proxy() 도우미 (또는 유사)를 사용하여 함수를 특정 컨텍스트에 바인딩 할 수 있습니다. 예를 들어

:

function MyFormatter(row, cell, value) { 
    var grid = this; // the grid will be the executing scope 
    // ... 
} 

var myFormatterForGridA = $.proxy(MyFormatter, gridA); 
var myFormatterForGridB = $.proxy(MyFormatter, gridB); 
+1

나를 위해 완벽하게 작동하는, 정말 고마워요! (투표를하지 않는 것에 대한 사과, 사이트에 새로운 내용이 있으므로 내 담당자가 아직 허용할만한 수준이 아닙니다.) – user1389920

관련 문제