2012-06-25 7 views
1

dojo 프레임 워크를 사용하여 JavaScript로 웹 애플리케이션을 빌드 중입니다. 런타임 중에 새로운 탭을 만들고 싶습니다 (TabPane이 있고 ContentPane을 추가했습니다). 그리고 그 창에서 데이터 격자를 만들고 싶습니다. 나는 데이터 그리드없는 경우, 또는 TabPane을 실행하면런타임 중에 dojo에 데이터 그리드로드

ReferenceError 
../dojo-release-1.7.2-src/dojo/_base/Deferred.js:216 
Error parsing in _ContentSetter#Setter_dijit_layout_ContentPane_0_0 
ReferenceError 
../dojo-release-1.7.2-src/dijit/layout/ContentPane.js:543 
Error undefined running custom onLoad code: This deferred has already been resolved 

내가 실행 :이 작업을 수행 할 때

내가 몇 가지 오류를 얻을 수 (가 동일해야하므로 Specificly LazyTreeGrids는 있지만 데이터 그리드 클래스를 확장) TabPane이없는 데이터 격자 (페이지로드시) 잘 작동합니다. 내가 문제를 해결할 수있는 아이디어가 있습니까?

관련 코드 :

dojo.ready(function(){ 
    var tabPanel = new dijit.layout.TabContainer({ 
     style: "height: 100%; width: 100%;" 
    }, "mainWindow"); 

    //console.error("tset"); 
    var console = new contentPane.console("test"); 


    var cp1 = new dojox.layout.ContentPane({ 
     title: "HomeScreen", 
     content: "" 
    }); 

    tabPanel.addChild(cp1); 

    var cp2 = new dojox.layout.ContentPane({ 
     title: "+", 
     content: "" 
    }); 
    tabPanel.addChild(cp2); 

    tabPanel.startup(); 

    require(["dojo/dom-attr"], function(domAttr){ 
     domAttr.set(cp1, "content", console.getContent()); 
    }); 

}); 

답변

0

당신은 창 그리드를 시작하기 전에로드되어 있는지 확인해야합니다. 그리드를 TabContainer의 직접적인 하위로 설정할 수 있습니다. tabContainer.addChild (myGrid);

+0

내 문제에 관심을 가져 주셔서 대단히 감사합니다. 그리드가 포함 된 contentPane을 사용하여 일부 버튼을 추가 할 수 있습니다. 그리드를로드하기 전에 contentPane을 초기화하려고했으나 잘못했거나 오류가 발생했습니다. 위의 관련 코드를 추가합니다. –

+0

dojox.layout.ContentPane은 문제의 일부라고 생각합니다 ... 평범한 오래된 dijit.layout.ContentPane으로 시도하고 어떻게 진행되는지 알려주시겠습니까? – PEM

+0

dijit 창에서 스크립트를 실행하는 데 문제가 있으므로 dojox 창을 사용합니다. 그러나 당신이 나에게 묻는 것처럼 그 차이를 테스트하기 위해 그것을 변경했다. 그리고 그것은 정확하게 오류 출력 인 것처럼 보인다. –

관련 문제