`

EXT 3.4.0 小计实现

    博客分类:
  • EXT
阅读更多
1.首先看效果(最下方图片)

2.需要一个合计插件GridSummary.js GridSummary 插件,下载后将后缀名该为 js
3.页面需要引用的文件
1     <link rel="stylesheet" type="text/css" href="include/ext-3.4.0/resources/css/ext-all.css" />
2     <link rel="stylesheet" type="text/css" href="include/ext-3.4.0/ux/css/ux-all.css" />
3     <script type="text/javascript" src="include/ext-3.4.0/adapter/ext/ext-base.js"></script>
4     <script type="text/javascript" src="include/ext-3.4.0/ext-all.js"></script>
5     <script type="text/javascript" src="include/ext-3.4.0/ux/ux-all.js"></script>
6     <script type="text/javascript" src="include/ext-3.4.0/locale/ext-lang-zh_CN.js"></script>
7     <script type="text/javascript" src="include/ext-3.4.0/ux/GridSummary.js"></script> <!-- 合计插件 -->
8     <script type="text/javascript" src="demo.js"></script> <!-- 示例js -->


4.Grid代码
    var url = "RequestAction/AT/Req_CT_SHIPMENTS.aspx?Action=GetDetailAll&S_SHIPMENTS_M_GUID=" + guid;
    //复选框
    var sm = new Ext.grid.CheckboxSelectionModel();
    var textFileldVehicle = new Ext.form.TextField
        ({
            allowBlank: false,
            blankText: "请输入车号",
            maxLength: 50
        });

        var numField = new Ext.form.NumberField({
            allowNegative: false,
            allowDecimals: true,
            allowFormat: true,
            decimalPrecision: 2,
            allowBlank: false,
            blankText: '金额必须大于零'
        });
    //字段集合
    var fields =
            [           
            { name: 'S_VEHICLE_NUMBER' },
            { name: 'N_QUANTITY' },
            { name: 'N_FREIGHT' },
            { name: 'S_GUID' },
            { name: 'S_SHIPMENTS_M_GUID' }
            ];
    var proxy = new Ext.data.HttpProxy({ url: url });
    //数据读取器
    var reader = new Ext.data.JsonReader({
        totalProperty: "totalPorperty", //数据总条数
        root: "rows",    //将要显示数据的数组
        id: "S_GUID",    //每一行数据的唯一记录
        fields: fields
    });

    //列集合 其中 summaryType: 'sum' 为求和
    var cm = new Ext.grid.ColumnModel
    ({ columns: [sm,
        new Ext.grid.RowNumberer({ header: 'NO', width: 30, align: 'center' }),
        { header: '车号', dataIndex: 'S_VEHICLE_NUMBER', editor: textFileldVehicle, summaryRenderer: function (v, params, data) { return '合计'; } },
        { header: '重量', dataIndex: 'N_QUANTITY', summaryType: 'sum', renderer: formatNumberDefault, align: 'right', editor: numField },
        { header: '运费', dataIndex: 'N_FREIGHT', summaryType: 'sum', renderer: formatNumberDefault, align: 'right', editor: numField}
    ]
    });

//如果全部列都可排序否则单个设置
    cm.defaultSortable = false;

    //创建一个store
    var shipmentsDetailstore = new Ext.data.Store({
        proxy: proxy,
        reader: reader,
        autoDestroy: true,
        autoLoad: { params: { start: 0, limit: pageSize} }
    });

    //插入行按钮
    var btn_Insert = new Ext.Button({ text: '插入行', iconCls: 'insert', handler: function () {
        //定义一个recode对象 
        var initValue = createShipmentDetailRow();
        grid.stopEditing();
        var maxRowIndex = grid.getStore().getCount();
        grid.getStore().insert(maxRowIndex, initValue); //在第一个位置插入
        grid.view.refresh();
        grid.getSelectionModel().selectLastRow();
        grid.getView().focusRow(maxRowIndex); //焦点标记行
        grid.startEditing(maxRowIndex, 2); //单元格转换成编辑状态
    }
    });
    //删除行按钮
    var btn_Remove = new Ext.Button({ text: '删除行', iconCls: 'delete', handler: function () {
        grid.stopEditing();
        var rows = grid.getSelectionModel().getSelections();
        if (rows == undefined || rows.length == 0) {
            setShipmentStatusBarText('error', '请选择需要删除的行!');
            return; //判断记录集是否为空,为空返回  
        }
        grid.getStore().remove(rows);
        grid.view.refresh();
    }
    });

    //工具栏
    var tbar = new Ext.Toolbar({
        cls: 'top-toolbar',
        items: [btn_Insert, '-', btn_Remove]
    });
    var summary = new Ext.ux.grid.GridSummary();
    //创建GRID
    var grid = new Ext.grid.EditorGridPanel
        ({
            id: 'ShipmentsDetailGirdPanel',
            deferredRender: false,
            enableColumnHide: false,
            enableHdMenu: false,
            columnLines: true,
            enableColumnMove: false,
            store: shipmentsDetailstore,
            sm: sm,
            cm: cm,
            loadMask: true,
            //自适应宽度 参数为列数
            //            autoExpandColumn: 4,
            //超过长度带自动滚动条
            autoScroll: true,
            border: false,
            nocache: false,
            timeout: 10,
            clicksToEdit: 1,
            scripts: true,
            loadMask: { msg: '正在加载数据,请稍侯……' },
            tbar: tbar,
            view: new Ext.ux.grid.BufferView({
                rowHeight: 25,
                scrollDelay: true,
                forceFit: true,
                deferEmptyText: true,
                emptyText: "无数据"
            }),
            plugins: summary
        });

5.此时会看到合计行字体偏小
添加样式
.x-grid3-summary-row .x-grid3-cell-inner {
    FONT: 12.5px tahoma,arial,helvetica,sans-serif
}

6.此示例Ext版本为 3.4.0
  • 大小: 40.8 KB
分享到:
评论

相关推荐

    ext-3.4.0.zip

    ExtJS 3.4.0 是一个流行的JavaScript框架,用于构建富互联网应用程序(RIA)。它由Sencha公司开发,提供了一系列强大的组件和工具,使得开发者能够创建功能丰富的、交互式的Web应用。ExtJS 3.4.0版本是该框架的一个...

    ext-3.4.0.rar

    这个“ext-3.4.0.rar”文件很可能是Ext JS库的版本3.4.0的压缩包,包含了一系列JavaScript文件、CSS样式表和其他资源,允许开发者创建功能丰富的、交互性强的Web界面。 在Ext JS 3.4.0版本中,有几个关键知识点值得...

    ext-3.4.0API 带例子

    ext-3.4.0API 带例子 ext-3.4.0API 带例子 ext-3.4.0API 带例子 ext-3.4.0API 带例子 ext-3.4.0API 带例子

    Ext3.4.0复杂(多行)表头+锁定多列例子

    在Ext JS 3.4.0版本中,实现这些特性需要利用其提供的GridPanel组件。GridPanel允许开发者自定义头部(header)和列(columns)。对于多行表头,可以通过创建嵌套的HeaderContainer来实现,每个HeaderContainer可以...

    ext-3.4.0 最新版

    ext是一个强大的js类库,以前是基于YAHOO-UI,现在已经完全独立了, 主要包括data,widget,form,gird,dd,menu,其中最强大的应该算gird了,编程思想是基于面对对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名...

    真实项目:Hibernate3.3.2+Spring3.0+Struts2.2.3+ext3.4.0

    项目配置:Hibernate3.3.2+Spring3.0+Struts2.2.3 + ext3.4.0,真实项目实现,项目中可参考经典权限设计,通用数据录入,批量数据处理(poi),统一的JSON格式封装,灵活的组合模式设计,EXTJS面向组件编程参考......

    ExtJS 3.4.0

    10. **国际化支持**:支持多语言,开发者可以通过配置文件轻松实现应用的国际化。 11. **API文档**:虽然3.4.0版本可能没有最新的API文档,但依然有社区维护的文档和示例,帮助开发者理解和使用其功能。 总之,...

    ext-3.4.0比较稳定的一个页面开发js框架

    Ext是一个强大的js类库,主要包括data,widget,form,grid,dd,menu,其中最强大的应该算grid了,编程思想是基于面向对象编程(oop),扩展性相当的好.可以自己写扩展.自己定义命名空间.web应用可能感觉太大.不过您可以根据...

    ext-3.4.0完整版本代码.rar

    ext-3.4.0完整版本代码.rar

    ext-3.4.0 (1).zip

    本安装包"ext-3.4.0 (1).zip"包含了EXTJS的3.4.0版本,这是一个非常重要的里程碑,因为EXTJS 3.x系列是其早期稳定且广泛采用的版本。 EXTJS 3.4.0版本的关键知识点包括: 1. **组件系统**:EXTJS 3.4.0拥有一个...

    MyEclipse 8.5+spket1.6.18.jar +ext-3.4.0 安装配置

    标题与描述均提到了"MyEclipse 8.5+spket1.6.18.jar +ext-3.4.0 安装配置",这表明文档主要关注的是如何在MyEclipse 8.5环境下安装和配置spket1.6.18.jar插件以及ext-3.4.0库。下面我们将详细解析这一过程中的关键...

    ext-3.4.0开发包

    EXTJS 3.4.0开发包是一款基于JavaScript的富客户端框架,专为构建复杂的、数据驱动的Web应用程序而设计。EXTJS的核心理念是提供一套完整的组件化UI库,包括表格、面板、菜单、表单、树形视图等,以及强大的数据绑定...

    ext3.0+Spket自动提示

    4. **Ajax支持**:EXT3.0通过其强大的Ajax框架,能够轻松地实现与服务器的数据交互,创建无刷新的用户体验。 5. **国际化**:EXT3.0支持多语言,可以方便地进行应用的国际化配置。 6. **主题定制**:EXT3.0允许...

    Extjs3.4.0版本 多选下拉框效果支持多选/全选/全不选

    在ExtJS 3.4.0版本中,多选下拉框(Multiselect Combobox)是一种常见的用户界面组件,用于提供多个选项供用户选择。这个功能增强了标准的单选下拉框,允许用户同时选择多个条目,通常通过复选框实现。在描述中提到...

    ExtJS 3.4.0中的 ext.jsb2 文件

    在3.4.0版本中,`ext.jsb2` 文件是一个关键组成部分,它对于理解和开发基于ExtJS的应用程序至关重要。这个文件的缺失可能会对升级到4.0.0版本的开发者造成困扰,因为4.0.0版本不再包含这个文件,但幸运的是,它可以...

    extjs-3.4.0下载

    1. **源代码**:`ext-3.4.0`目录包含了ExtJS的核心库文件,如`ext-all.js`(包含所有组件和功能)和`ext-all-debug.js`(调试版本,带有详细的错误提示)。此外,还有其他分模块的JavaScript文件,便于按需加载和...

    spring mvc mybatis extjs 3.4 权限管理

    本系统采用Spring MVC框架作为控制层,MyBatis作为持久层框架,ExtJS 3.4作为前端界面展示工具,实现了权限管理功能,并通过调用Oracle数据库中的存储过程实现数据的分页查询。这是一个非常实用的进销存产品开发参考...

    opencv_contrib3.4.0+vs2017+win10+opencv3.4.0

    在实际项目中,你可以利用OpenCV 3.4.0和opencv_contrib 3.4.0来实现各种任务,如图像和视频处理、目标检测、特征匹配、图像分割、实时视频分析等。同时,结合深度学习模块如DNN(Deep Neural Networks),可以构建...

    python-3.4.0安装包

    python最新版3.4.0安装包,比以前的更强大了

    Apache Cordova 3.4.0 下载

    Apache Cordova 3.4.0 是一个重要的版本更新,它是跨平台移动应用开发框架Apache Cordova的一个里程碑。Cordova允许开发者使用Web技术(如HTML、CSS和JavaScript)来构建原生的移动应用,这些应用可以运行在iOS、...

Global site tag (gtag.js) - Google Analytics