我不是懶惰,但嘗試了很多方法嘗試重新載入包含dojo TabContainer(id = dojoTabbedPane)的div(id = refreshable)。每次重新加載頁面後,每個選項卡中的所有內容都會顯示一個堆棧(選項卡丟失)。是否有工作的dojo tabContainer可以在contentPane中成功重新加載?
我做了一些研究,提出問題,並在jQuery加載之前使用dijit.byId("dojoTabbedPane").destroyRecursive();
,然後在重新加載後調用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>
很抱歉地說你的問題提出了更多的問題,然後它提出了一些問題,請細化一下。你面臨的問題是,當contentholder'刷新'時tabcontainer被破壞,你需要重建它。 *'可刷新'*,並且它是否設置了寬度/高度? *爲什麼有jquery調用?* :) *如何從文件返回html:/// *看起來像? – mschr
您需要解析「refreshable」div,而不是放入其中的「dojoTabbedPane」div。 – Frode
@mschr對不起,我感到困惑。該要求要求自動刷新頁面的一部分(div中'可刷新'),所以我調用javascript函數setInterval每30秒調用一次$ JQuery.load。我使用jQuery的原因是因爲dojo.xhrGet無法處理大量數據。 '可刷新'沒有寬度/高度。這種關係更像'