私も同じような問題を抱えています。RyanCorradiniと同様のソリューションを試しました。
初回表示のみOKです。ウィンドウサイズを変更すると、サイズ変更関数が正しく呼び出されますが、グリッドのサイズは変更されません。
私の特定の条件に注意してください:サイズ変更機能では、グリッドの高さ属性を設定する必要があります(サイズ変更+更新だけでは不十分のようです)。
HTMLは次のようになります:
<div id="msgItems" dojoType="dijit.layout.ContentPane" region="center"
style="padding:2px;">
<form id="msgDefForm" name="msgDefForm" dojoType="dijit.form.Form">
<div style="display:none;"><input type="text" name="msgName" id="msgName" dojoType="dijit.form.TextBox"></input>
</div>
<table dojoType="dojox.grid.DataGrid" jsId="msgGrid" id="msgGrid"
rowsPerPage="10" rowSelector="5px" singleClickEdit="false" loadingMessage="Loading message content"
errorMessage="Error while loading the message content" selectable="true" >
<thead>
<tr>
<th field="zone" width="8em" cellType="dojox.grid.cells.Select" options="properties, values" editable="true">Zone</th>
<th field="property" width="auto" editable="true">Property</th>
<th field="value" width="auto" editable="true">Value</th>
</tr>
</thead>
</table>
</form>
</div>
JSは次のようになります:
... in startOnLoad :
dojo.connect( window, "onresize", msgGridResized);
msgGridResized ();
...
function msgGridResized () {
var cont = dojo.byId("msgItems")
var h = cont.clientHeight - 4;
if (h >= 0){
var grd = dijit.byId("msgGrid");
grd.attr("height", h+"px" );
grd.resize();
grd.update();
}
}