extpander的使用,一般extpander tpl里设置的都是xtemplate,如果返回值类型比较一致,比较好,如果返回值分类不一致,可以通过rowexpander的expand方法来控制rowexpander打开时,所显示的值,本例子直接返回html代码
示例:
/* 数据读取器
var logReader = new Ext.data.JsonReader({
totalProperty : 'count',
root : 'JsonObjs'
}, [{
name : 'autoId'
}, {
name : 'currentOperation'
},{
name : 'startTime'
}, {
name : 'start_time_i'
}, {
name : 'end_time_i'
},{
name : 'attachment'
} ,{
name : 'duration'
} ,{
name : 'handleDept'
}, {
name : 'operator'
}, {
name : 'detail'
}, {
name : 'recId'
}]);
/*rowexpander 创建*/
var d = new Ext.grid.RowExpander({
tpl:"<div id='ri_s' class='ri_s'></div>" //里面定义一个div,不定义xtmplate 好放入html代码
});
/*表格头定义*/
/* 表格列头定义 */
var cm = new Ext.grid.ColumnModel([
d,
{
header : '日志时间',
dataIndex : 'startTime',// 日志时间
align : 'center',
width : 140
}, {
header : '当前操作',
dataIndex : 'currentOperation',// 当前处理
align : 'center',
width : 100
}, {
header : '开始时间',
dataIndex : 'start_time_i',// 处理部门
align : 'left',
width : 100
}, {
header : '结束时间',
dataIndex : 'end_time_i',// 处理部门
align : 'left',
width : 100
} ,{
header : '处理部门',
dataIndex : 'handleDept',// 处理部门
align : 'left',
width : 150
}, {
header : '操作人',
dataIndex : 'operator',// 操作人
align : 'left',
width : 100,
renderer : function(value, params, record) {
return (record.get('recId') == null || record.get('recId') == '')
? value
: value
+ " (<a href='#'><img src='../smallIcons/listen_black.gif' width='24' height='17' border='0'/></a>)";
}
}
]); //此处detail(细节)没显示,让rowpander来显示
cm.defaultSortable = false;// 是否支持排序
/*rowpander expand方法定义,定义打开时,div里显示的东西
d.on("expand",function(d,r,body,rowIndex){ //d为rowpander对象,r为单击是当前表格行,body为返回对象,可不用,rowIndex为当前表格是第几行
var data = Ext.getCmp("grid").getStore().getAt(rowIndex).get("detail"); //通过表格的store获取当前表格行里detail属性的数据
var h = document.getElementsByName("ri_s"); //获取rowpander里的div,控制div(返回的是一个div数组)
var m = "暂无内容"; //detail没内容时显示
if( data != "" && data != null){
var f = eval('('+data+')'); //把{"name":1,"value":2}类型的字符串转化为json
if(f.jt_operator){ //如果f中存在jt_operator属性,则显示该内容的样式,以下类此
m = "<table><tr><td style='width:80px;height:20px'>类型:</td><td style='width:250px'>"+f.jt_type
+"</td></tr><tr><td>金额:</td><td>"+f.jt_je
+"</td></tr><tr><td>经办人:</td><td>"+f.jt_operator
+"</td></tr><tr><td>操作时间:</td><td>"+f.jt_date
+"</td></tr></table>";
};
if(f.sj_content){
m = "<table><tr><td style='width:80px;height:20px'>处理结果:</td><td style='width:250px'>"+f.textarea_c
+"</td></tr><tr><td>设计内容和要求:</td><td>"+f.sj_content
+"</td></tr><tr><td>领导审核意见:</td><td>"+f.sj_sign
+"</td></tr><tr><td>完成时间:</td><td>"+f.sj_time
+"</td></tr><tr><td>预算金额:</td><td>"+f.sj_money
+"</td></tr><tr><td>设计要求:</td><td>"+f.sj_combo
+"</td></tr><tr><td>附件下载:</td><td>aa"
+"</td></tr><tr><td>Excel下载:</td><td><a href=projectManage!projectPoi.action?data="+encodeURI(data)+">工商及开发配套客户施工图设计流转单.xls</a></td></tr></table>";
};
};
h[rowIndex].innerHTML = m; //设置跟rowIndex配套的div的显示
});
/* 数据Store */
var logStore = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : 'projectManage!loadOrderActivities.action'
}),
reader : logReader,
sortInfo : {
field : 'autoId',
direction : "desc"
} // 排序
});
/*store load前参数导入*/
logStore.on('beforeload
', function() {
Ext.apply(this.baseParams, {
orderId : Ext.getCmp('orderId').getValue()
});
});
/*表格定义*/
var grid = new Ext.grid.GridPanel({
store : logStore,
cm : cm,
id:"grid",
loadMask : {
msg : label_grid.loadMsg
}, // 加载时显示的等待信息
stripeRows : true,
viewConfig : {
forceFit : true,
autoScroll : true
},
plugins:[d],
autoExpandColumn : "detail"
});
分享到:
相关推荐
2. **按钮(Button)的用法**:`EXTjs button用法.doc`将详细介绍如何创建和使用ExtJS 4的按钮组件,包括设置按钮文本、图标、事件监听器以及使用不同类型的按钮,如工具栏按钮、菜单按钮等。 3. **表单(Form)...
extjs4.0结合My97DatePicker4.7版本使用 使用简单 方便 解决extjs中日期控件不能显示时间的问题 下载后将其放到extjs目录的examples下 直接运行date.html即可 extjs4.0版本 4.0以前的版本没有测试过 如果有4.0版本...
ExtJS是一种广泛应用于Web开发的...总的来说,"ExtJS静态使用示例"提供了一个学习和实践ExtJS基础功能的机会,通过Grid、Panel和Tree的使用,可以帮助开发者掌握如何在Web应用中构建交互性和功能性丰富的用户界面。
extjs中使用FusionChart举例
在给定的"Extjs4 grid使用例子"中,我们可以深入理解如何在MVC架构下有效地利用ExtJS4的Grid组件。Grid组件是ExtJS中的核心部分,它提供了一个灵活的、可定制的数据展示网格,通常用于显示和操作大量数据。 1. **...
在 ExtJS3 中,我们可以使用 Ext.extend 来定义类,而在 ExtJS4 中,我们需要使用 Ext.define 来定义类。例如,在 ExtJS3 中,我们可以使用以下代码来定义一个类: ```javascript Ext.ux.PostStore = Ext.extend...
通过这些小例子,你可以了解如何使用ExtJS 4.1来创建用户界面,包括布局管理、组件系统、数据绑定、事件处理等核心概念。 描述中提到的".直接导入myeclipse即可",意味着这些示例代码是用Eclipse的MyEclipse插件...
众多的案例详细介绍了extjs的使用和实现效果
在标题"extjs2----关于extjs 的使用,操作"中,我们可以看出这是一份关于ExtJS 2.0版本的使用指南,主要涵盖了其基本操作和应用。描述中提到内容较为初级,适合初学者学习,这表明我们将探讨的是ExtJS的基础概念和...
ExtJS 4.2 Desktop 拓展是一个用于构建桌面样式的Web应用程序的框架,它提供了丰富的用户界面组件和交互效果。这个拓展是基于ExtJS 4.2版本,一个非常强大的JavaScript库,用于创建数据驱动、富客户端的Web应用。在...
ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的组件和工具,使得开发者可以创建出功能强大、用户界面友好的Web应用。在“extjs流程界面设计器参考”中,我们主要关注的是...
将ASP.NET与EXTJS结合使用,可以充分发挥两者的优势。在服务器端,ASP.NET处理业务逻辑和数据操作,而在客户端,EXTJS负责展示用户界面和交互。这种分层架构有助于提高应用性能,减少服务器压力,并提供优秀的用户...
### 知识点概述 #### 1. Extjs概念与目录结构 Extjs是一个基于JavaScript的框架,用于构建交互式的web应用。...通过学习本书,读者能够全面掌握Extjs的各种特性,进而使用Extjs开发出功能强大、交互良好的Web应用。
3. **使用ExtJS的Chart组件**: ExtJS提供了一个Chart组件,它是Highcharts的封装,可以直接在ExtJS的应用中使用Highcharts图表。将之前创建的Highcharts配置对象传递给Chart组件。 4. **数据绑定**: 当Store接收到...
在标题和描述中提到的“Extjs4小图标”指的是ExtJS 4版本中使用的一系列图形图标,这些图标用于增强应用程序的视觉效果,提供用户友好的操作指示。 1. **图标分类**: - 图标通常分为不同的类别,如操作图标(比如...
在本篇文章中,我们将深入探讨如何在实际项目中使用ExtJS 3.1的组件。 首先,`css`目录包含了ExtJS 3.1的样式文件。这些CSS文件用于定义组件的外观和布局,包括颜色、字体、边距、边框等。在使用过程中,我们需要...
extjs2.0 使用简明教程之窗口分组,实现分组窗体
EXTJS分页通常与数据访问对象(DAO)和动作控制器(Action)结合使用,形成一个完整的数据获取和展示流程。下面将详细阐述EXTJS分页的核心概念、实现方法以及DAO和Action在其中的作用。 一、EXTJS分页核心概念 1. ...
EXTJS 4.2 Desktop MVC 是一个基于EXTJS 4.2版本的桌面应用程序框架,它结合了MVC(Model-View-Controller)设计模式,为开发者提供了构建富客户端桌面应用的强大工具。EXTJS是一个流行的JavaScript库,专门用于创建...
"常用控件的使用"涵盖了EXTJS中的一些核心组件,如: 1. **TextField**:用于输入文本的基本字段,支持多种验证和配置。 2. **ComboBox**:下拉框,允许用户从预定义的选项中选择,也可以进行搜索。 3. **Checkbox*...