I have the same problem. I tried a solution similar to Ryan Corradini's.
This is normal for the first display. If I resize the window, the resize function will be called correctly, but the grid size will remain unchanged.
Pay attention to my special conditions: in the resize function, I need to set the grid height attribute (resizing + updating seems insufficient).
HTML looks like this:
<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 looks like this:
... 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(); } }
user140140
source share