簡體   English   中英

是否有一個有效的dojo tabContainer可以在contentPane中成功重新加載?

[英]Is there a working dojo tabContainer can successfully reload in a contentPane?

我並不懶惰但嘗試了很多方法嘗試重新加載包含dojo TabContainer(id = dojoTabbedPane)的div(id = refreshable)。 每次重新加載頁面后,每個選項卡中的所有內容都會顯示一個堆棧(缺少選項卡)。

我做了一些研究,提出問題,並使用dijit.byId("dojoTabbedPane").destroyRecursive(); 在jQuery加載之前然后調用dojo.parser.parse(dojo.byId("dojoTabbedPane")); 重裝后但從不工作。

那么,請問,任何人都可以共享一個簡單的片段,實際上可以告訴我tabContainer可以看起來它的容器是否刷新了嗎? 我發誓我嘗試了許多理論方法,它應該可以工作,但任何人都可以告訴我一個非常簡單的代碼讓我看到它有效嗎?

我不知道如何在這里粘貼大塊代碼,否則我會給出一個基本樣本,所以每個人都有興趣可以幫忙修改,這里我從Dojo網站准備了一個tabContainer,請幫我解決。 謝謝 !!

<script type="text/javascript" 
src="dojo/dojo/dojo.js"  
djConfig="parseOnLoad: true"></script> 

<script type="text/javascript" >
function refresh_data(url, id) {
j('#'+id).load(url+' #'+id+' > *', function (response) {
      dojo.parser.parse(dojo.byId("dojoTabbedPane"));
});
}
</script>
<script type="text/javascript">
    var login_url = '<spring:url value="/login" />';

    j(function() {
        setInterval('refresh_data("file:///D:/Dojo/dojo.tabbed.pane_very_good.html?hash="+Math.random(), "refreshable");', 9000); 
    });
    // this disables errors in IE7
    function noError(){return true;}
    window.onerror = noError;
</script>
<style type="text/css"> 
@import "dojo/dijit/themes/tundra/tundra.css"; 
</style>
<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("dijit.layout.TabContainer");
dojo.require("dijit.layout.ContentPane");
</script>
</head>
<body class="tundra">
    <!-- this div is only for documentation purpose, in real development environments, just take it out -->
<div style="width: 350px; height: 300px">
<div data-dojo-type="dijit.layout.TabContainer" style="width: 100%; height: 100%;">
    <div data-dojo-type="dijit.layout.ContentPane" title="My first tab" selected="false">
        Lorem ipsum and all around...
    </div>
    <div data-dojo-type="dijit.layout.ContentPane" title="My second tab"  selected="true">
        Lorem ipsum and all around - second...
    </div>
    <div data-dojo-type="dijit.layout.ContentPane" title="My last tab" closable="true">
        Lorem ipsum and all around - last...
</div>
</div>
</div>
</body>

它是一個關於jQuery的問題,無論是否已經在完成回調運行時已經設置了#replaceable的innerHTML ..但是只需將超時行取消注釋為'unhook'並讓加載機制在調用解析器之前完成。 試試這個:

<div id="replaceable">

</div>

<script>
function refresh_data(url, id) {

  var w = dijit.byId("dojoTabbedPane"),
      domNode = dojo.byId(id);
  if(w)  w.destroyRecursive();

  j(domNode).load(url+' #'+id+' > *', function (response) {
      // setTimeout(function() {
         dojo.parser.parse(domNode);
         w = dijit.byId("dojoTabbedPane");
         w.resize(dojo.getMarginBox(domNode));
      // }, 200);

  });
}

dojo.addOnLoad(function() {
    var login_url = '<spring:url value="/login" />';
    setInterval('refresh_data("file:///D:/Dojo/dojo.tabbed.pane_very_good.html?hash="+Math.random(), "refreshable");', 9000); 
});
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM