0

IE9 ブラウザで Dojo 1.7 を使用しています。複数の DataGrid を動的に生成し、それらを div 内のコンテンツに追加しようとしています。autoHeightグリッドのプロパティを使用しています。

これは、Chrome または Firefox で問題なく機能します。ただし、高さを固定量に設定するまで、グリッドは IE に表示されません。

autoHeight を IE で動作させるにはどうすればよいですか? IE9 が高さのセマンティクスをどのように扱うかに関係していると思われます。

4

3 に答える 3

2

私は数分前までこの同じ問題に対処してきました.リストにあるアイテムの数に応じて動的グリッドを作成しており、すべてのグリッドがautoHeightで表示されています. 問題は、グリッドやその高さとは関係ありません。

よくわかりませんが、IE は他のブラウザーとは異なる方法でレイヤーを解釈するため、具体的な方法でレイヤーを追加する必要があります。最初にグリッドを DOM ノード (つまり、グリッドを追加する動的に作成するノード) に追加してから、最後にこのグリッド コンテナーを HTML に追加します。それは私にとって正しく機能しています。

于 2012-10-10T10:38:50.557 に答える
1

私も同じ問題に直面しました。代わりの人を探してみました。

私はこの道をたどり、その働きをしました。

に次のプロパティを追加します

dojox.grid.datagrid
onShow: function(){if(grid)grid.setStore(store);}

そして電話するgrid.onShow();

  var grid= new dojox.grid.DataGrid({
    store : store,
    query : {
      sno : "*"
    },
    autoHeight:true,
    structure : columns,
    selectionMode : "Multiple",
    onShow: function(){if(grid)grid.setStore(store);}
  });

// This will fire the onShow event on grid.
grid.onShow();
于 2012-11-30T07:28:11.283 に答える
0

IE では、動的に追加されたグリッドで必ずスタートアップを呼び出す必要がありました。たとえば、postCreate でグリッドを追加する場合は、次のようにします。

startup: function() {
    this.inherited(arguments);
    if (this.grid) this.grid.startup();
}

グリッドはうるさい場合があります。これを行っても、autoHeight を使用した IE (IE9) ではまだ高さの問題があります。事後に更新されたストアを設定すると、高さは 0 になります。

于 2012-09-24T09:31:57.547 に答える