将dojox.datagrid注入dijit.layout.contentpane到dijit.layout.tabcontainer时出现问题

将dojox.datagrid注入dijit.layout.contentpane到dijit.layout.tabcontainer时出现问题,grid,dojo,Grid,Dojo,没有在FF工作。我是否正确使用了grid、tabStudios、tabContainer和startups的功能顺序?tabcontainer和grid都没有被注入。有人对这个问题有什么建议吗 dojo.addOnLoad(function() { var tabContainer=new dijit.layout.TabContainer({region:"center",id:"studio-tab"}); var tabStudios=new dijit.layout.Co

没有在FF工作。我是否正确使用了grid、tabStudios、tabContainer和startups的功能顺序?tabcontainer和grid都没有被注入。有人对这个问题有什么建议吗

dojo.addOnLoad(function() {
    var tabContainer=new dijit.layout.TabContainer({region:"center",id:"studio-tab"});
    var tabStudios=new dijit.layout.ContentPane({title:"Studioliste",id:"studios"});
    var readStore=new dojox.data.QueryReadStore({url:"index/studiolistdata",requestMethod:"post"});
    var grid=new dojox.grid.DataGrid({store:readStore,
                                      id:"studiolistgrid",
                                      rowsPerPage:30,
                                      delayScroll:true,
                                      structure:'.Zend_Json::encode($attr).',
                                      loadingMessage:"Loading..."
                                     });

   //problems start here

   grid.placeAt(tabStudios.containerNode);
   grid.startup();

   tabStudios.placeAt(tabContainer);
   tabStudios.startup();

   tabContainer.placeAt(dijit.byId("studio-content").containerNode);
   tabContainer.startup();

   //problems hopefully ended here
 });


  • XY
  • XZ
  • YY

我找到的唯一解决方案是将ContentPane更改为BorderContainer,并将DataGrid中我的TabContainer放入其中。这在Firefox和IE7中对我来说很好

变化:

- tabContainer.placeAt(dijit.byId("studio-content").containerNode);
+ tabContainer.placeAt(dijit.byId("studio-content"),"only");

....

-<div id="studio-content" dojoType="dijit.layout.ContentPane" region="center">
-  <ul>
-    <li>XY</li>
-    <li>XZ</li>
-    <li>YY</li>
-  </ul>
-</div>

+<div id="studio-content" dojoType="dijit.layout.BorderContainer" region="center">
+  <div dojoType="dijit.layout.ContentPane" region="center">
+    <ul>
+      <li>XY</li>
+      <li>XZ</li>
+      <li>YY</li>
+    </ul>
+  </div>
+</div>
-tabContainer.placeAt(dijit.byId(“studio内容”).containerNode);
+tabContainer.placeAt(dijit.byId(“工作室内容”),“仅限”);
....
-
-
    -
  • XY
  • -
  • XZ
  • -
  • YY
  • -
- + + +
    +
  • XY
  • +
  • XZ
  • +
  • YY
  • +
+ +
我意识到这是一年多以前的事了,我不知道这是否相关,但我发现这条线索在谷歌搜索中排名靠前,因为内容窗格中没有加载数据网格

这里的问题是,您使用的是不执行脚本的dijit.layout.ContentPane;甚至不警惕(“测试”)

您需要使用具有executeScripts功能的dojox.layout.ContentPane(默认情况下已启用)

关于这个问题的解决方案,我真的没有什么可说的了,但我在博客上写道:

这让我非常恼火,以至于我花了很长时间才找到这么简单的解决办法

所以我在这里发布了一个答案,一年后,以防有更多的人遇到这个问题,发现自己在这个问题上

我希望有人觉得它有用

干杯。

面对同样的问题, 例如,无法在tabcontainer/contentpane中查看/加载网格。经过检查后,观察到的是网格将在内容窗格加载之前加载,所以

  • 尝试在加载内容窗格后加载网格
  • 或者为内容窗格提供一些默认宽度和高度
  • 使用了选项2,它成功了。使用方法如下:

    var conPane= new ContentPane({"style":width:90%;"});
    

    嗯,如果我能读一下你的博客,它位于一个已经过期的域名上,可能会有所帮助……:)抱歉,伙计-更新了新域的链接。我对博客失去了一段时间的兴趣,实际上让它过期了。我最近得到了一个新域名,我想啊,好吧,我想我可以把它放上去。不过请注意,它好像已经超过5岁了希望它仍然是最新的。
    var conPane= new ContentPane({"style":width:90%;"});