2012-11-16 2 views
0

Dojo DataGrid에 사용자 정의 포매터를 추가하려고합니다. 이 포맷터는 프레젠테이션을 위해 html로 문자열을 반환해야한다는 것을 알고 있습니다.Dojo DataGrid에서 콜백이있는 포매터

나는 즉

<a href="javascript:void(0)" onclick="callMeBack()">value</a> 

문제 것은 내가 전역 함수 callMeBack()이 아니라 콜백 함수를 인라인을 쓰고 싶어하지 않는다는 것입니다, 클릭 할 때 JS 콜백와 링크를 렌더링합니다. 그러나 나는 이것이 기능을 발휘할 수없는 것 같습니다.

function callMeBack() { ... } 
var structure = [ 
      {name:"name", field:"name", width: "200px", formatter: function(name) { 
       var link = domConstruct.create("a", {innerHTML: name}); 
       domAttr.set(link, "href", "javascript:void(0)"); 
       on(link, "click", callMeBack); 
       return link.outerHTML; 
      }}, 
      ....     
     ]; 

문제는 클릭 콜백이 등록되지 않는 것 같습니다 : 지금까지 나는이 썼다. 그리드에 사용 된 DOM 노드가 문자열 표현이 반환 된 후에 구성된다는 점을 고려하면 매우 이해할 수 있습니다.

하지만 어떻게하면됩니까?

답변

0

가능한 한 가지 방법은 함수 정의를 찾을 수 있도록 xx.yy.callmeback GLOBALLY와 같은 함수를 정의하는 것입니다. 그러나 나는 이것이 최선의 방법이라고 생각하지 않는다.

+0

가장 좋은 방법이라고 생각하지 않는다면, 왜 대답이 아닌 코멘트로 게시하고 있습니까? – antonijn

관련 문제