Extjs中的gridPanel总是出不来滚动条,很是郁闷,搞了一下午总算搞定……
先上图片:
代码:
var grid = new Ext.grid.GridPanel({
tbar: tbar,
id: 'grid_userlist',
renderTo: 'div_cabinetList',
autoHeight: true,
autoScroll: true,
store: store,
stripeRows: true,
listeners: {
'render': function() {
for (var i = 0; i < tbars.length; i++) {
tbars[i].render(this.tbar);
}
}
},
viewConfig : {
scrollOffset: -3 , //去掉右侧空白区域 具体数值可能需要调整
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;
var vh=csize.height;
if (!g.hideHeaders && (vw < 20 || csize.height < 20)) { // display:
// none?
return;
}
if (g.autoHeight) {
this.el.dom.style.width = "100%";
//计算grid高度
var girdcount=store.getCount();
var gridHeight=0;
for(var i=0;i<girdcount;i++){
gridHeight=gridHeight+grid.getView().getRow(i).clientHeight;
}
this.el.dom.style.height =gridHeight+75;//75是菜单栏和分页栏高度和
this.el.dom.style.overflowX = "auto"; //只显示横向滚动条
} 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);
}
},
cm: cm,
bbar: new Ext.PagingToolbar({
pageSize: pageSize,
store: store,
autoWidth: true,
id:"btn_bbar",
displayInfo: true,
displayMsg: '<%=map.get("011") %>'+' {0}' + '<%=map.get("012") %> '+'{1} '+'<%=map.get("013") %>'+'<%=map.get("014") %> '+'{2} '+'<%=map.get("015") %>',//显示第几条到几条记录,一共多少条
emptyMsg: '<%=map.get("016") %>'//没有记录
})
});
注: (1) 出现滚动条的关键代码是 viewConfig属性的配置 ;
(2) autoHeight: true,
- 大小: 42.8 KB
分享到:
相关推荐
在使用ExtJS开发Web应用程序时,经常会遇到在GridPanel中数据列过多,导致横向滚动条自动出现的问题。这个问题主要是由于GridPanel的宽度不足以容纳所有的列宽,因此浏览器会自动显示横向滚动条以便用户查看全部数据...
后来公司让改变一个Gridpanel的展现方式,要求实现滚屏的效果。于是我就开始找API相关的功能了。找了很久,也没有找到框架的相应控制方法,然后在网上找了很久,也没有找到有人给去示例,无奈就只能自己写JS来控制...
### Ext grid panel 滚动条位置不变 在前端开发领域,特别是在使用Ext JS框架时,保持滚动条位置不变是一个非常实用的功能。特别是在处理实时数据更新的场景下,这一功能可以确保用户在数据刷新后仍然停留在之前...
在本话题中,我们讨论的是如何在`gridPanel`中添加按钮,这涉及到前端用户界面的设计和交互。`gridPanel`在诸如ExtJS、GWT或PrimeFaces等框架中常见,它们提供了丰富的功能来处理表格数据,包括排序、筛选、分页等。...
### Ext GridPanel 中实现加链接操作 在前端开发领域中,Ext JS 是一款非常流行的 JavaScript 框架,用于构建企业级的 Web 应用程序。Ext GridPanel 是该框架中的一个重要组件,常用于展示表格数据。本文将详细介绍...
使用 Ext.NET 的响应式布局(Responsive Configurations)和设备配置(Device Profiles),可以使GridPanel在不同屏幕尺寸下自动适应。 总的来说,`newtpanel.aspx` 和 `newtpanel.aspx.cs` 文件展示了如何利用Ext...
- **行编辑**: 可以通过添加RowEditor插件实现单元格级别的编辑。 - **分页**: 使用PagingToolbar可以实现数据的分页展示。 - **排序**: 默认支持列头点击进行排序,也可以自定义排序逻辑。 - **过滤**: ColumnModel...
`会在`GridPanel1`的存储库的开头插入一条新记录。 弹出窗体的打开通常是通过JavaScript函数完成的,比如`window.showModalDialog`。这会创建一个模态对话框来显示指定的页面。在`GridPanel`中单元格赋值,例如在弹...
扩展的GridPanel,让其分页后保持选择状态
总结来说,EXTJS的GridPanel添加“合计”行涉及到View的自定义、数据计算、模板创建、DOM操作以及样式调整等多个环节。通过以上步骤,我们可以实现一个动态更新且具有美观样式的“合计”行。这不仅增强了数据展示的...
接下来,我们需要为GridPanel添加双击事件监听器。在ExtJs中,我们可以使用`viewConfig`配置项中的`selType`来定义选择模型,通常是'checkboxmodel',以便在每行前添加复选框。然后通过`selModel`配置项设置双击时...
2. 创建GridPanel:定义Grid的数据模型,设置列配置,添加行操作和列筛选。 3. 数据绑定:通过store将TreePanel和GridPanel连接起来,使得选择树节点可以动态改变Grid的数据。 4. 事件监听:添加事件监听器来响应...
对于大数据量的展示,GridPanel 支持虚拟滚动和行级渲染,这大大减少了内存占用并提升了性能。 11. **工具栏和列菜单**: GridPanel 可以拥有自定义的工具栏,用于执行各种操作。列也可以有自己的右键菜单,如...
ExtJS的GridPanel导出excel文件,方便快捷易懂!
Ext.grid.GridPanel 删除线 放到example文件夹下运行
在Ext JS这个强大的JavaScript框架中,GridPanel是一个非常重要的组件,用于展示数据表格。然而,在实际应用中,可能会遇到一个常见的问题:当GridPanel需要进行第二次加载时,数据或者功能可能会丢失。这个问题主要...
这样做可以防止`Grid Panel`根据内容自动调整滚动条。接着,通过`viewConfig`配置,我们可以指定样式,例如设置`overflow`为`auto`以允许垂直滚动,同时设置`overflowX`为`hidden`以隐藏水平滚动条。 示例代码如下...
可以给GridPanel的store添加`onload`事件来实现这一需求。 ```javascript grid.getStore().on('load', function(s, records) { var gridcount = 0; s.each(function(r) { if (r.get('zy') === '本期合计') { ...
- **排序与过滤**: `sortable`属性允许列排序,而`filter`配置则用于添加过滤器。 - **行编辑**: 使用`RowEditor`插件实现行内编辑。 - **行选择**: 可以配置`selModel`来实现单选或多选行。 - **扩展功能**: 如`...