2012-09-19 67 views
0

我在dojo對話框中創建了dojox.grid.EnhancedGrid。 它工作正常,當我第一次點擊按鈕時,所有顯示都OK。 但是當我點擊「取消」隱藏對話框,然後再次點擊按鈕觸發該功能並顯示對話框。顯示完全錯誤,網格標題不完整,沒有數據顯示。所有網格都是灰色的。關閉後無法在對話框中顯示dojo網格

Plz幫助我在Dialog中重新顯示dojo網格。

<table dojoType="dojox.grid.EnhancedGrid" id="grid6" plugins="{indirectSelection: true, selectable: true, dnd: true, nestedSorting: true, loadingMessage: 'Loading...', errorMessage: 'An error exists within the data.' }" selectionMode="extended" class="popupDojoTable" style="height:200px;" rowSelector="0px"> 
          <colgroup span="3" noscroll="true"></colgroup> 
          <colgroup span="6"></colgroup> 
          <thead> 
           <tr> 
            <th field="machType" width="60px">Machine<br />type</th> 
            <th field="machSerNum" width="100px">Machine<br />serial<br />number</th> 
            <th field="mesNum" width="80px" styles="text-align:right;">MES<br />number</th> 
            <th field="bookType" width="60px">Book<br />type</th> 
            <th field="machMod" width="80px">Machine<br />model</th> 
            <th field="transType" width="80px">Transaction<br />type</th> 
            <th field="effDte" width="80px">Effective<br />date</th> 
            <th field="custNum" width="80px">Customer<br />number</th> 
            <th field="assetPeriodNum" width="60px" styles="text-align:right;">Asset<br />period<br />number</th> 
           </tr> 
          </thead> 
          <tbody> 
          ... 
          </tbody> 
         </table> 

然後我通過腳本插入數據。它通過ajax從服務器獲取數據,然後顯示包含網格的對話框「dialogRecordsOnHold」。

dojo.xhrPost({ 
           url: this.url, 
           handleAs: "json", 
           headers : { 
            "Content-Type" : "application/json; charset=utf-8", 
            "Accept" : "application/json" 
           }, 
           postData : dojo.toJson({finEnterpNum:this.finEnterpNum, adjNum:this.adjNum}), 
          .... 
        load: function(data) { 
         var gridData = new dojo.data.ItemFileWriteStore({data:{items:data}}); 
         dijit.byId('grid6').setStore(gridData); 

         // hide dialogProcessing 
         dijit.byId('dialogOpeningView').hide(); 
         dijit.byId('dialogRecordsOnHold').show(); 
        }, 
)}; 

取消按鈕的功能是如此簡單:

<button dojoType="dijit.form.Button" type="button" onclick="dijit.byId('grid6').setStore(null);dijit.byId('dialogRecordsOnHold').hide();">Cancel</button> 
+0

我已經自行解決它。 將代碼更改爲: \t load:function(data){ var gridData = new dojo.data.ItemFileWriteStore({data:{items:data}}); //隱藏對話框處理 dijit.byId('dialogOpeningView')。hide(); dijit.byId('dialogRecordsOnHold')。show(); dijit.byId('grid6').setStore(gridData); }, )}; – stevenfrog

回答

0

我有我自己解決它。 將代碼更改爲:

load: function(data) { 
// hide dialogProcessing 
dijit.byId('dialogOpeningView').hide(); 
dijit.byId('dialogRecordsOnHold').show(); 
var gridData = new dojo.data.ItemFileWriteStore({data:{items:data}}); 
dijit.byId('grid6').setStore(gridData); 
}, 
)}; 
相關問題