在运行时期间在dojo中加载数据网格

时间:2012-06-25 09:17:10

标签: datagrid dojo runtime treegrid

我正在使用dojo框架在JavaScript中构建一个Web应用程序。我想在运行时创建新选项卡(我有一个TabPane并添加ContentPanes)并希望在该窗格中创建数据网格。 (特别是LazyTreeGrids,但它们扩展了数据网格类,因此它应该是相同的)

当我这样做时,我得到了几个错误:

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 

当我在没有数据网格的情况下运行TabPane时,或者如果我在没有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() );
    });

});

1 个答案:

答案 0 :(得分:0)

在启动网格之前,您必须确保已加载窗格。 请注意,您可以将网格作为TabContainer的直接子项。 tabContainer.addChild(myGrid);