使用gridpanel时我们有时需要给设置autoHeight:true,但这时如果表格的宽度大于它的容器的宽度,多余的内容就会被隐藏而不会出现横向的滚动条,费了老大劲儿才找到了解决办法,方法就是给gridpanel的option config添加如下属性:
viewConfig : {
layout : function() {
if (!this.mainBody) {
return; // not rendered
}
var g = this.grid;
var c = g.getGridEl();
var csize = c.getSize(true);
var vw = csize.width;
if (!g.hideHeaders && (vw < 20 || csize.height < 20)) { // display:
// none?
return;
}
if (g.autoHeight) {
this.el.dom.style.width = "100%";
this.el.dom.style.overflow = "auto";
this.el.dom.firstChild.style.overflow = "visible";
this.el.dom.firstChild.style.cssFloat = "left";
this.el.dom.firstChild.firstChild.style.cssFloat = "left";
this.el.dom.firstChild.firstChild.nextSibling.style.cssFloat = "left";
this.el.dom.firstChild.firstChild.firstChild.style.overflow = "visible";
this.el.dom.firstChild.firstChild.nextSibling.style.overflow = "visible";
} else {
this.el.setSize(csize.width, csize.height);
var hdHeight = this.mainHd.getHeight();
var vh = csize.height - (hdHeight);
this.scroller.setSize(vw, vh);
if (this.innerHd) {
this.innerHd.style.width = (vw) + 'px';
}
}
if (this.forceFit) {
if (this.lastViewWidth != vw) {
this.fitColumns(false, false);
this.lastViewWidth = vw;
}
} else {
this.autoExpand();
this.syncHeaderScroll();
}
this.onLayout(vw, vh);
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/luwenhe/archive/2010/01/19/5213768.aspx
解决过程中遇到了好多问题,如header的背景不全,不是所有的列都能resize(已经设置了resizable:true),所以可能还有很多问题我没有发现。如果谁发现有什么问题,希望不吝赐教。
修改:
又发现了一个简单的方法比上边效果好多了,嘿嘿
viewConfig : {
layout : function() {
if (!this.mainBody) {
return; // not rendered
}
var g = this.grid;
var c = g.getGridEl();
var csize = c.getSize(true);
var vw = csize.width;
if (!g.hideHeaders && (vw < 20 || csize.height < 20)) { // display:
// none?
return;
}
if (g.autoHeight) {
if (this.innerHd) {
this.innerHd.style.width = (vw) + 'px';
}
} else {
this.el.setSize(csize.width, csize.height);
var hdHeight = this.mainHd.getHeight();
var vh = csize.height - (hdHeight);
this.scroller.setSize(vw, vh);
if (this.innerHd) {
this.innerHd.style.width = (vw) + 'px';
}
}
if (this.forceFit) {
if (this.lastViewWidth != vw) {
this.fitColumns(false, false);
this.lastViewWidth = vw;
}
} else {
this.autoExpand();
this.syncHeaderScroll();
}
this.onLayout(vw, vh);
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/luwenhe/archive/2010/01/19/5213768.aspx
分享到:
相关推荐
在使用ExtJS开发Web应用程序时,经常会遇到在GridPanel中数据列过多,导致横向滚动条自动出现的问题。这个问题主要是由于GridPanel的宽度不足以容纳所有的列宽,因此浏览器会自动显示横向滚动条以便用户查看全部数据...
以上就是关于ExtJs GridPanel双击事件获取双击的行及选中复选框状态的实现方法。通过这些知识,你可以轻松地在GridPanel中添加用户交互功能,提升应用程序的用户体验。请确保在实际项目中根据需求调整代码,以满足...
在ExtJs中,延时加载通常通过设置Store的`buffered`属性为`true`来实现,这会启用BufferedStore功能。还需要配置`pageSize`以决定每次加载的数据量。此外,可能需要定义`leadingBufferZone`和`trailingBufferZone`...
在EXTJS中,GridPanel是一种常用的组件,用于展示表格数据。在实际应用中,我们经常需要在GridPanel底部显示一行“合计”行,以便对某一列或多列的数据进行求和或其他统计操作。这篇博文“给Extjs的GridPanel增加...
因此,合理地设置`flex`和`autoWidth`,以及在必要时手动触发视图刷新,是优化EXTJS GridPanel列宽动态调整的关键。 在博客中提到的"JavaEyeGrid"可能是一个自定义的EXTJS GridPanel实现,或者是作者提供的示例代码...
通过以上分析可以看出,在ExtJS中利用`GridPanel`展示数据时,需要通过多个对象进行配合来完成数据的加载、解析、展示等功能。这些对象包括`HttpProxy`、`JsonReader`、`Store`、`ColumnModel`和`PagingToolbar`等。...
【EXTJS 2.02 GridPanel 知识详解】 EXTJS GridPanel 是EXTJS库中的核心组件之一,尤其在EXTJS 2.02版本中,它提供了强大的表格展示和交互功能,对于初学者来说极具学习价值。GridPanel不仅能够处理基本的表格操作...
autoHeight:true, defaultType:"textfield", items:[ {fieldLabel:"姓名", //width:250, //设置了anchor后无效 allowBlank:false, blankText:"姓名不能为空", anchor:"50%" }, { fieldLabel:"密码", ...
ExtJS的GridPanel导出excel文件,方便快捷易懂!
- `scrollTop`:将滚动条设置为顶部。 - `scrollToTop`:避免执行默认的滚动行为。 3. **注意点**: - 需要确保网格视图的`scroller`属性已经被正确初始化。 - 当使用`Ext.override`时,确保不会与其他覆盖方法...
后来公司让改变一个Gridpanel的展现方式,要求实现滚屏的效果。于是我就开始找API相关的功能了。找了很久,也没有找到框架的相应控制方法,然后在网上找了很久,也没有找到有人给去示例,无奈就只能自己写JS来控制...
Bug1:出现纵向滚动条后,将横向滚动条拖到最后,然后会发现每选择一条记录整个grid就会往左移,右边空出一部份空白。 Bug2:出现横向滚动条后,向右稍拉滚动条,然后点击任意一行,会发现行内容向左偏移,滚动条...
ExtJS表格面板(GridPanel)是Sencha Ext JS框架中的一个核心组件,它用于展示大量结构化数据。在本文中,我们将深入探讨如何创建并使用一个完整的ExtJS GridPanel实例,以及与其相关的源码和工具。 首先,让我们...
### 通过Servlet让Extjs GridPanel显示数据库数据 在现代Web开发中,将数据库中的数据动态展示在前端界面上是一项常见的需求。本文档主要介绍如何通过Servlet技术配合Extjs框架中的GridPanel组件来实现这一功能。 ...
ExtJS GridPanel是Sencha ExtJS框架中的一个核心组件,用于创建数据网格,展示大量结构化数据。在本文中,我们将深入探讨GridPanel的操作,包括其功能、配置选项以及如何扩展GridPanel以满足复杂需求。 首先,...
在集成TreePanel和GridPanel时,可能涉及到的概念有:将TreePanel的节点与GridPanel的数据关联,实现点击树节点时动态加载或更新GridPanel的数据,以及可能的父子数据联动操作。 在实际应用中,你可能会学习到以下...
要实现滚动条动态加载,需要设置`viewConfig`中的`scroll`属性为`true`,并使用`store`的`buffered`和`pageSize`属性来指定数据加载策略。 3. **ExtJS 4.0的Grid Panel** Grid Panel是ExtJS中用于展示数据的主要...
关于选择模式,ExtJS4的GridPanel支持多种选择模式,如: 1. **SINGLE**: 单选模式,每次只能选择一行。 2. **MULTI**: 多选模式,可以同时选择多行。 3. **SIMPLE**: 简单多选模式,需要按住Shift键才能连续选择...
在本文中,我们将深入探讨ExtJS中的`Ext.TabPanel`组件,它是创建多标签界面的核心元素。`Ext.TabPanel`允许开发者在单个容器中组织多个面板或视图,每个面板都有自己的标题,并且可以通过标签页进行切换。让我们...