我有一個獨立的html頁面,其中包含一個很好的dojo DataGrid。我在下面列出了相關的代碼。現在Dojo ..無法在contentpane中執行javascript
<script type="text/javascript">
var readStore, grid;
var gridLayout = [
new dojox.grid.cells.RowIndex({ name: "Row #", width: 5, styles: "text-align: left;" }),
{
name: "Name",
field: "name",
styles: "text-align:right;",
width:30
},
{
name: "Type",
field: "type",
width:20
}
];
function initGrid()
{
readStore=new dojox.data.QueryReadStore({url:"/EG3/orgUnit/getChildren", requestMethod:"get"});
console.info("readStore initialized");
grid=new dojox.grid.DataGrid({store:readStore,
id:"grid",
delayScroll:true,
structure:gridLayout,
query:{id:2},
loadingMessage:"Loading..."
}, document.createElement('div'));
dojo.byId("gridContainer").appendChild(grid.domNode);
grid.startup();
}
dojo.addOnLoad(initGrid);
</script>
</HEAD>
<BODY class="claro">
<div id="list" class="list">
Table goes here
<div id="gridContainer">
</div>
</div>
,當我嘗試包括該頁面在TabContainer裏包含ContentPane的問題發生。 TabContainer按原樣加載頁面標記,並且不會觸發包含網格的頁面的onLoad腳本。
<div dojoType="dijit.layout.TabContainer" region="center" tabStrip="true" id="orgUnitTabs">
<div dojoType="dojox.layout.ContentPane" title="Info" selected="true" id="orgInfo" jsId="orgInfo">
</div>
<div dojoType="dojox.layout.ContentPane" href="/EG3/app/orgUnit/orgUnitChildren.gsp" executeScripts="true" parseOnLoad="true" extractContent="true" title="Children" id="children" jsId="children">
Children of the selected Org
<script type="javascript" event="onLoad">
initGrid();
</script>
</div>
有關如何可以觸發子頁面的onLoad腳本的任何想法?
在此先感謝。
感謝您的回覆。我把這個設置的executeScripts設置爲true,但這沒有什麼區別。我終於找到了一個可行的解決方案。它真正爲我工作的唯一方法是將JavaScript包裝在另一個內容窗格的子頁面中,並使scripttype =「dojo/method」。 – user464336 2010-10-26 21:10:12