GridPanel 表头太长,而没有出现滚动条的解决方法

 

 当GridPanel表头太长的时候,我们可以设置属性“autoScroll:true”,当有数据的时候就会出现滚动条,当没有数据的时候

 

,滚动条就没有出现。

 

  解决的办法:

 

         Ext.override(Ext.grid.GridView, {
                renderBody : function() {
                    var markup = this.renderRows();
                    if (markup == "")
                        markup = "<div style='width:" + this.getTotalWidth()
                                + "'>&#160;</div>";

                    return this.templates.body.apply({
                                rows : markup
                            });
                }
            });

重写renderBody这个方法,在里面加入,当数据为空的时候的处理。

 

 

后来发现在分组的gridPanel 下面有问题,在加入以下的代码

 

Ext.override(Ext.grid.GroupingView, {
                updateGroupWidths : function() {
                    if (!this.enableGrouping || !this.hasRows()) {
                        return;
                    }
                    var tw = Math.max(this.cm.getTotalWidth(),
                            this.el.dom.offsetWidth - this.scrollOffset)
                            + 'px';
                    var gs = this.getGroups();
                    for (var i = 0, len = gs.length; i < len; i++) {
                        if (gs[i] != undefined && gs[i].firstChild != undefined
                                && gs[i].firstChild.style != undefined)

                            gs[i].firstChild.style.width = tw;
                    }
                }
            });

你可能感兴趣的:(ext)