Javascript 嵌套div中的myGrid.setStore

Javascript 嵌套div中的myGrid.setStore,javascript,datagrid,dojo,arcgis,dojox.grid.datagrid,Javascript,Datagrid,Dojo,Arcgis,Dojox.grid.datagrid,我正在尝试开发一个ersi映射javascript页面 我在创造 var myData = { items: myItems }; var myStore = new dojo.data.ItemFileReadStore({ data: myData }); 这些文件可以正确创建,并且具有正确的数据 我用myGrid.setStore(myStore)更新dojox.grid.DataGrid时遇到问题 我对网格的代码是: <table dojotype

我正在尝试开发一个ersi映射javascript页面

我在创造

var myData = { items: myItems };
var myStore = new dojo.data.ItemFileReadStore({ data: myData });
这些文件可以正确创建,并且具有正确的数据

我用
myGrid.setStore(myStore)更新
dojox.grid.DataGrid
时遇到问题

我对网格的代码是:

                <table dojotype="dojox.grid.DataGrid" jsid="myGrid" noDataMessage="No results found in the current map extent" style="width:100%;height:100%;" selectionMode="none">
            <thead>
                <tr>
                <th field="NAME" width=75%>Neighborhood</th>        
                <th field="ownPct" width=25%>% Own</th>                                 
                </tr>
            </thead>
            </table>

邻里
%拥有
此表嵌套在HTML中的多个div中

我怀疑当我运行myGrid.setStore(myStore)时在DOM中找不到该表

如果我将表移出任何DIV,并将其直接放在
标记之后(请参见链接)。代码将起作用并填充表。如果我将表格移动到HTML的末尾,刚好在
标记之前,它就会工作(请参阅链接)。但当我将表放入嵌套的div中时,它将不会填充(请参见链接)。这应该在“策略”选项卡上

我希望我有道理,这让我发疯


提前感谢Paul

我认为问题不在于
设置存储
,而在于其他一两件事

实例化DataGrid时,它会尝试检测可用空间(以确定要渲染的行数等)。您已经告诉它是其父div的100%,但请记住,默认情况下div的高度为0px

因此,您可以尝试为栅格(或gridDiv)指定明确的高度。但是,网格也处于非活动选项卡中,因此它仍然检测到它没有高度(毕竟它是不可见的!)

因此,接下来您可以尝试将网格的选项卡设置为活动选项卡(即
)。这将在页面加载时为您提供一个呈现的网格


唉,您不希望网格的选项卡成为活动选项卡。因此,最终的解决方案是,当激活策略选项卡时,您需要明确地告诉网格重新计算其高度(
myGrid.resize()
)。我没有使用过bootstrap的标签,所以我不知道该怎么做——也许你会用?

太棒了,你已经用上了!!我已将
放在外部DIV上。然后在选项卡的
上单击
。非常感谢,我猜这是一个HTML/CSS问题。Paul@Easty请放心,你不是第一个因为这件事把头撞到墙上的人;-)我一直认为问题出在电网上