2010-10-24 55 views
0

我有一個獨立的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腳本的任何想法?

在此先感謝。

回答

0

不知道正確的答案是什麼,但如果我是你,我會嘗試以編程方式而不是聲明性地執行所有操作,陷阱錯誤,使用控制檯輸出查看發生了什麼並在加載時記錄事件。

+0

感謝您的回覆。我把這個設置的executeScripts設置爲true,但這沒有什麼區別。我終於找到了一個可行的解決方案。它真正爲我工作的唯一方法是將JavaScript包裝在另一個內容窗格的子頁面中,並使scripttype =「dojo/method」。 – user464336 2010-10-26 21:10:12

1

,你應該檢查是否帕拉姆executeScripts設置爲TRUE ,如果你想使用聲明方法,你必須手動解析れ,查看詳細dojo.parse方法:HTTP://docs.dojocampus .org/dojo/parser

相關問題