RowExpander是Extjs中grid的一个插件,可以在一行下再展现数据。实现了非常方便的parent-detail的效果。
1.加入mousedown事件处理
if (Ext.ux.grid.RowExpander) {
Ext.apply(Ext.ux.grid.RowExpander.prototype, {
getDataFn : null,
onMouseDown : function(e, t) {
if (t.className == 'x-grid3-row-expander') {
e.stopEvent();
var row = e.getTarget('.x-grid3-row');
var viewRow = row;
if (typeof viewRow == 'number') {
viewRow = this.grid.view.getRow(viewRow);
}
var record = this.grid.store
.getAt(viewRow.rowIndex);
if (!record.data.checkSignerInvoicess) {
var mark= new Ext.LoadMask(Ext.getBody(), {
msg : 'Loading data...',
removeMask : true
});
mk.show();
this.getDataFn (record, this,
function(expander) {
// 展开该行
expander.toggleRow(viewRow.rowIndex);
mark.hide();
});
return;
}
this.toggleRow(row);
}
}
});
}
2.制作获取数据函数
function GetInvoices(record, expander, callback) {
Ext.Ajax.request( {
url : 'getDetailInvoices.json',
params : {
'chkNo' : record.data.chkNo,
'vendorNo' : record.data.vendNo
},
success : function(response) {
var data = Ext.decode(response.responseText);
if (!data.success) {
showError(data.message, checkBooks);
return true;
}
// 设置模板中所需要的record数据,并展开该行
record.data.checkSignerInvoicess = data.records;
record.commit();
if (callback) {
callback(expander);// 一定要回调该函数,否则不能展开
}
},
failure : function() {
if (callback) {
callback(expander);
}
}
})
}
;
3.制作expander
var expander = new Ext.ux.grid.RowExpander(
{
tpl : new Ext.XTemplate(
'<div class="x-grid-group-title" style="margin-left:10%">',
'<table class="x-grid3-row-table" cellspacing="0" cellpadding="0" border="0" >',
'<thead>',
' <tr class="x-grid3-hd-row"><td class="x-grid3-hd x-grid3-cell x-grid3-td-11" >seqNo</td> <td class="x-grid3-hd x-grid3-cell x-grid3-td-11" >status</td> <td class="x-grid3-hd x-grid3-cell x-grid3-td-11" >amt</td> <td class="x-grid3-hd x-grid3-cell x-grid3-td-11" >discAmt</td> <td class="x-grid3-hd x-grid3-cell x-grid3-td-11" >payAmt</td> <td class="x-grid3-hd x-grid3-cell x-grid3-td-11" >vendNo</td> <td class="x-grid3-hd x-grid3-cell x-grid3-td-11" >cashAcctCurrCd</td> <td class="x-grid3-hd x-grid3-cell x-grid3-td-11" >altVendNo</td> </tr>',
'</thead>',
'<tpl for="checkSignerInvoicess">',
'<tr><td>{seqNo}</td> <td>{status}</td> <td>{amt}</td> <td>{discAmt}</td> <td>{payAmt}</td> <td>{vendNo}</td> <td>{cashAcctCurrCd}</td> <td>{altVendNo}</td></tr>',
'</tpl>', '</table>', '</div>'),
lazyRender : true,
getDataFn : GetInvoices
// 注册回调函数
});
4.使用expand
//column中
var columns = new Ext.grid.ColumnModel( [
new Ext.grid.RowNumberer(), sm, expander, {
//grid中
var grid = new Ext.grid.GridPanel( {
title : 'Payment Information',
renderTo : 'my-tabs',
store : initalStore,
cm : columns,
sm : sm,
plugins : expander,
5.效果
- 大小: 101.1 KB
分享到:
相关推荐
语言程序设计资料:ExtJs学习笔记-2积分.doc
ExtJs常用布局--layout详解实例代码: ExtJs常见的布局方式有:border、form、absolute、column、accordion、table、fit、card、anchor 另外,不常见的布局有:tab、vbox、hbox 具体使用方法可见该文件的案例代码。 ...
extjs-620-docs官方文档extjs-620-docs官方文档extjs-620-docs官方文档
在家研究了一下extjs异步树,-每个节点都异步加载-前后台代码都有-附整个工程-运行通过-前台代码请看doctree.js,后台代码请看TreeService.java,运行环境:Myeclipse6.5+tomcat7.0.27
"extjs-theme-bootstrap" 是针对 EXTJS4 的一个主题,它借鉴了 Bootstrap 的设计风格,让 EXTJS4 应用程序具有更加现代化和一致的外观。 Bootstrap 是一个流行的前端开发框架,由 Twitter 推出,主要用于构建响应式...
ExtJS快速入门--传智播客--蔡世友
extJs-5.0.1-gpl附带sencha cmd安装程序、ruby编译包(分为32位和64位)和教程,一共四部分
描述中提到内容较为初级,适合初学者学习,这表明我们将探讨的是ExtJS的基础概念和常用组件。 首先,让我们来了解一下ExtJS的核心概念。ExtJS基于组件模型,允许开发者构建复杂的用户界面,这些组件可以是按钮、...
"extjs-theme-bootstrap-master.zip" 文件很可能是ExtJS的一个主题包,它集成了Bootstrap的样式,使得ExtJS组件能够呈现出Bootstrap的经典外观。 在深入讲解这个主题之前,让我们先了解一下基础概念: 1. **ExtJS*...
Ext JS 6最大的变化就是将Ext JS和Touch合并为一个单一的框架。之前的框架的核心(数据、控制器、模型等等)已被调和为一个单一的公共平台。这样,数据和逻辑就能共享,从而帮助开发人员进一步去优化他们的应用程序...
一个extjs的OA项目 extjs-OA extjs-oaextjs-OA extjs-oa
在"ExtJS----HelloWorld程序源码"中,我们将会看到如何使用ExtJS来创建一个简单的“你好,世界!”应用。以下是对这个示例中涉及的主要知识点的详细解释: 1. **引入ExtJS库**:首先,你需要在HTML文件中引入ExtJS...
总结,"ExtJS-4.2.2-gpl.rar"是一个全面的学习和开发资源,涵盖了ExtJS的核心部分。通过深入研究这个压缩包中的内容,开发者不仅可以掌握ExtJS的基本用法,还能了解到高级特性和最佳实践,从而在Web开发领域取得更大...
总结起来,这个"ExtJS-MVC-用户列表实例"展示了如何使用ExtJS的MVC架构来构建一个功能完整的Web应用,包括定义数据模型、创建视图来展示数据、设置控制器来处理用户交互,以及利用Store进行数据管理。同时,...
Extjs6.2 生成的admin-dashboard官方模板
总之,"extjs-3.0-all-src"包含的是ExtJS 3.0的全部源代码,对学习和研究该框架的实现原理以及定制开发非常有帮助。通过理解和掌握这些知识点,开发者可以利用ExtJS 3.0创建功能强大、用户体验优秀的Web应用程序。
extjs-620-docs,6.2.0离线文档,解压后可以布署到web服务器
ExtJS入门教程-超级详细-共36页 完整版 PDF,电子书方便阅读和分享。