Dojo - EnhancedGrid 未在第一次页面加载时显示

Posted

技术标签:

【中文标题】Dojo - EnhancedGrid 未在第一次页面加载时显示【英文标题】:Dojo - EnhancedGrid is not getting displayed on 1st time page load 【发布时间】:2015-09-18 07:13:28 【问题描述】:

我有以下增强网格:

var newGrid = new EnhancedGrid(
                         store : this.resultStore,
                         structure : this.resultGridLayout,
                         autoHeight:true
                     );

newGrid.placeAt(this.resultGridNode);
newGrid.startup();

我已将网格放置在“dijit.layout.TabContainer”下,默认情况下未选中此选项卡。

当第一次加载页面时,表格没有出现... 或者更确切地说,我会说一个表格像一条线。当我使用萤火虫检查时,发现数据存在但是 dojoxGridMasterHeader 和其他与网格相关的 css 类的高度和宽度为零...... 下次当我更改一些更改网格中值的输入参数时,表格会出现..

尝试了以下线程中提供的解决方案,但对我不起作用:EnhancedGrid in a TabContainer not working

【问题讨论】:

【参考方案1】:

您是否尝试过启动小部件?

newGrid.startup();

然后将其放到 DOM 中。

newGrid.placeAt(this.resultGridNode);

【讨论】:

嗨..感谢您的回复..是的,我已经尝试过了..它不起作用..表格看起来像一条线..当我使用萤火虫检查时,发现数据存在但是高度和宽度是零......【参考方案2】:

我在使用 dijit.layout.TabContainer 和 Gridx 时遇到了类似的问题。您应该在第一次出现时调用选项卡的 resize() 方法。您也可以选择在 tabSwitch 监听器上调用 resize()。

代码应该类似于:

tabContainer.selectedChildWidget.resize()

但这真的取决于你如何使用容器。

【讨论】:

以上是关于Dojo - EnhancedGrid 未在第一次页面加载时显示的主要内容,如果未能解决你的问题,请参考以下文章

如何将dojo EnhancedGrid的过滤器定义转移到服务器端

Dojo EnhancedGrid 和程序化选择

带有 IndirectSelection 的 dojox.enhancedGrid 中复选框的事件处理程序

如何在增强网格中添加过滤器

没有为 dojo 的 DataGrid 触发事件

onEnded 事件未在 dojo 对话框中触发