`
yjshengshe
  • 浏览: 204645 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

extjs rowpander的使用

阅读更多

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"

});

分享到:
评论

相关推荐

    Extjs4使用要点个人整理

    2. **按钮(Button)的用法**:`EXTjs button用法.doc`将详细介绍如何创建和使用ExtJS 4的按钮组件,包括设置按钮文本、图标、事件监听器以及使用不同类型的按钮,如工具栏按钮、菜单按钮等。 3. **表单(Form)...

    extjs My97使用 extjs时间 extjs日期使用

    extjs4.0结合My97DatePicker4.7版本使用 使用简单 方便 解决extjs中日期控件不能显示时间的问题 下载后将其放到extjs目录的examples下 直接运行date.html即可 extjs4.0版本 4.0以前的版本没有测试过 如果有4.0版本...

    ExtJS静态使用示例

    ExtJS是一种广泛应用于Web开发的...总的来说,"ExtJS静态使用示例"提供了一个学习和实践ExtJS基础功能的机会,通过Grid、Panel和Tree的使用,可以帮助开发者掌握如何在Web应用中构建交互性和功能性丰富的用户界面。

    extjs中使用FusionChart举例

    extjs中使用FusionChart举例

    Extjs4 grid使用例子

    在给定的"Extjs4 grid使用例子"中,我们可以深入理解如何在MVC架构下有效地利用ExtJS4的Grid组件。Grid组件是ExtJS中的核心部分,它提供了一个灵活的、可定制的数据展示网格,通常用于显示和操作大量数据。 1. **...

    extJs3升级extjs4方案

    在 ExtJS3 中,我们可以使用 Ext.extend 来定义类,而在 ExtJS4 中,我们需要使用 Ext.define 来定义类。例如,在 ExtJS3 中,我们可以使用以下代码来定义一个类: ```javascript Ext.ux.PostStore = Ext.extend...

    extjs案例使用详解

    众多的案例详细介绍了extjs的使用和实现效果

    extjs2----关于extjs 的使用,操作

    在标题"extjs2----关于extjs 的使用,操作"中,我们可以看出这是一份关于ExtJS 2.0版本的使用指南,主要涵盖了其基本操作和应用。描述中提到内容较为初级,适合初学者学习,这表明我们将探讨的是ExtJS的基础概念和...

    extjs4.2 desktop 拓展

    ExtJS 4.2 Desktop 拓展是一个用于构建桌面样式的Web应用程序的框架,它提供了丰富的用户界面组件和交互效果。这个拓展是基于ExtJS 4.2版本,一个非常强大的JavaScript库,用于创建数据驱动、富客户端的Web应用。在...

    extjs流程界面设计器参考_ExtJS工作流设计器_extjs工作流_extjs_

    ExtJS是一种广泛使用的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的组件和工具,使得开发者可以创建出功能强大、用户界面友好的Web应用。在“extjs流程界面设计器参考”中,我们主要关注的是...

    aspnet extjs 使用范例

    将ASP.NET与EXTJS结合使用,可以充分发挥两者的优势。在服务器端,ASP.NET处理业务逻辑和数据操作,而在客户端,EXTJS负责展示用户界面和交互。这种分层架构有助于提高应用性能,减少服务器压力,并提供优秀的用户...

    轻松搞定Extjs 带目录

    ### 知识点概述 #### 1. Extjs概念与目录结构 Extjs是一个基于JavaScript的框架,用于构建交互式的web应用。...通过学习本书,读者能够全面掌握Extjs的各种特性,进而使用Extjs开发出功能强大、交互良好的Web应用。

    Highcharts与ExtJs结合使用

    3. **使用ExtJS的Chart组件**: ExtJS提供了一个Chart组件,它是Highcharts的封装,可以直接在ExtJS的应用中使用Highcharts图表。将之前创建的Highcharts配置对象传递给Chart组件。 4. **数据绑定**: 当Store接收到...

    extjs 分页

    EXTJS分页通常与数据访问对象(DAO)和动作控制器(Action)结合使用,形成一个完整的数据获取和展示流程。下面将详细阐述EXTJS分页的核心概念、实现方法以及DAO和Action在其中的作用。 一、EXTJS分页核心概念 1. ...

    包含各种类型的extjs小图标,Extjs4小图标

    在标题和描述中提到的“Extjs4小图标”指的是ExtJS 4版本中使用的一系列图形图标,这些图标用于增强应用程序的视觉效果,提供用户友好的操作指示。 1. **图标分类**: - 图标通常分为不同的类别,如操作图标(比如...

    extjs 3.1 组件 使用

    在本篇文章中,我们将深入探讨如何在实际项目中使用ExtJS 3.1的组件。 首先,`css`目录包含了ExtJS 3.1的样式文件。这些CSS文件用于定义组件的外观和布局,包括颜色、字体、边距、边框等。在使用过程中,我们需要...

    extjs2.0 使用简明教程之窗口分组

    extjs2.0 使用简明教程之窗口分组,实现分组窗体

    extjs4.2 desktop mvc

    EXTJS 4.2 Desktop MVC 是一个基于EXTJS 4.2版本的桌面应用程序框架,它结合了MVC(Model-View-Controller)设计模式,为开发者提供了构建富客户端桌面应用的强大工具。EXTJS是一个流行的JavaScript库,专门用于创建...

    ExtJs3.3中文API.CHM_extjs3.3中文文档_

    ExtJS是一个广泛使用的JavaScript库,专门用于构建富客户端应用程序。版本3.3是该库的一个稳定版本,提供了许多功能和组件,使得Web开发者能够创建功能丰富的、交互性强的用户界面。这个“ExtJS3.3中文API.CHM”文档...

    extjs 常用控件的使用 table layout

    "常用控件的使用"涵盖了EXTJS中的一些核心组件,如: 1. **TextField**:用于输入文本的基本字段,支持多种验证和配置。 2. **ComboBox**:下拉框,允许用户从预定义的选项中选择,也可以进行搜索。 3. **Checkbox*...

Global site tag (gtag.js) - Google Analytics