0

dojo ダイアログで dojox.grid.EnhancedGrid を作成します。最初にボタンをクリックすると、すべての表示がOKです。しかし、「キャンセル」をクリックしてダイアログを非表示にし、もう一度ボタンをクリックしてその機能をトリガーし、ダイアログを表示すると。表示が完全に間違っており、グリッド ヘッダーが完全ではなく、データが表示されません。すべてのグリッドは灰色です。

ダイアログで 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>
4

1 に答える 1

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);
 },
 )};
于 2012-09-22T02:39:46.110 に答える