我有两个tabbar(dojox.mobile.TabBarButton),我在每个标签上放置自定义小部件。在第二个选项卡上,窗口小部件使用datagrid显示JSON数据。这是我遇到问题的地方。正确加载了数据网格的数据,并且也形成了DOM节点,但未显示数据网格本身。然而,当我把它放在第一个标签上时,它会很奇怪。这是我的JS代码。
var gridDataUrl = "gridData.json";
var params = {
url: gridDataUrl,
handleAs: "json"
};
var resultGridNode = this.resultGridNode;
dojo.xhrGet(params).then(function(response){
var gridData = response;
var data = {
label: gridData.identifier,
identifier: gridData.identifier,
items: gridData.items
};
var store = new dojo.data.ItemFileReadStore({
data: data
});
var dg = new dojox.grid.DataGrid({
id: "grid",
store: store,
structure: gridData.structure
}, resultGridNode);
dg.resize();
dg.startup();
});
自定义模板:
<div data-dojo-type="dijit.layout.BorderContainer" style="width: 100%; height: 100%">
<div data-dojo-attach-point="resultGridNode" style="height: 600px; width: 400px">
</div>
</div>
我附加我的小部件的父模板:
<div id="tabView1" data-dojo-type="dojox.mobile.View" data-dojo-props="selected: true" style="height: 100%;">
<h1 data-dojo-type="dojox.mobile.Heading">Result</h1>
<div data-dojo-type="dojox.mobile.RoundRect" style="height: 100%" class="mblRoundRect">
<div data-dojo-attach-point="resultgrid"></div>
</div>
</div>
调试后,我发现问题可能是视图中的resize方法。当datagrid放在取消选择的tabbar上时,width和height设置为0.显式调用resize方法没有任何效果。谁能给我一个线索?
答案 0 :(得分:0)
什么是标签栏,dijit.layout.TabContainer
?
为什么网格位于dijit.layout.BorderContainer
?除非所有父dom节点的高度均为100%,否则使用高度为100%的BorderContainer
将不起作用。我会删除它,看看它是否有效。