javascript - Is there a working dojo tabContainer can successfully reload in a contentPane? -
i not lazy have tried many ways try reload div(id=refreshable) contains dojo tabcontainer(id=dojotabbedpane). each time after reloading page content in each tab show 1 stack(the tabs missing).
i did research, ask questions, , use dijit.byid("dojotabbedpane").destroyrecursive(); before jquery load , call dojo.parser.parse(dojo.byid("dojotabbedpane")); after re load never works.
so, please, can share simple snippet can show me tabcontainer can right container refreshed? swear try many theoretical way , should work can show me simple code let me see works?
i don't know how paste big chunk of code here otherwise give base sample interested can revise, here have prepared tabcontainer dojo website, please me work out. !!
<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); }); // 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"> <!-- div documentation purpose, in real development environments, take 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 , around... </div> <div data-dojo-type="dijit.layout.contentpane" title="my second tab" selected="true"> lorem ipsum , around - second... </div> <div data-dojo-type="dijit.layout.contentpane" title="my last tab" closable="true"> lorem ipsum , around - last... </div> </div> </div> </body>
its question regarding jquery, whether or not load has allready set innerhtml of #replaceable @ time complete callback runs.. uncomment timeout lines 'unhook' , let load mechanism finish before calling parser. try this:
<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>
Comments
Post a Comment