`
yiminghe
  • 浏览: 1466595 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一个简单的 Grid 封装

EXT 
阅读更多

太复杂了,得封装个简单的

 

Ext.namespace("Ext.ux.yiminghe")
Ext.ux.yiminghe.JsonGridPanel = function (config) {

    var fieldsData = [];
    for (var i = 0; i < config.columns.length; i++) {
        fieldsData.push(config.columns[i].dataIndex);
    }
    //config.baseParams=config.baseParams||[];
    //config.baseParams.limit=config.pageSize;
    //config.baseParams.start=0;
    config.store = new Ext.data.JsonStore({
        url: config.dataSource, //读取数据的url,
        root: 'rows',
        baseParams:config.baseParams,
        totalProperty:'results',        //总共的页数
        fields: fieldsData
    });
    
    config.store.lastOptions={params:{start:0,limit:config.pageSize}};

    var columns = [new Ext.grid.RowNumberer()];
    for (var i = 0; i < config.columns.length; i++) {
        if (config.columns[i].show)
            columns.push(config.columns[i]);
    }

    config.columns = columns;

    Ext.ux.yiminghe.JsonGridPanel.addMenuScope(config.tbar, this);
    config.store.on('loadexception', function(othis, options, response, e) {
				if(response.responseText.trim() !='')
        Ext.Msg.alert('注意', response.responseText);
        else
        	Ext.Msg.alert('注意','网络出问题了');
        return;
    });
    if (config.dynamicFunc)
        config.store.on('beforeload', function(store_, options) {
            config.dynamicFunc(options.params);
        });

    if (config.maskAll)
        config.loadMask = new Ext.LoadMask(Ext.getBody(), {msg:"加载中..."});
    else
        config.loadMask = true;

    config.bbar = new Ext.PagingToolbar({     //在grid底层添加分页工具栏
        pageSize:config.pageSize,                    //显示的数据条数
        store: config.store,           //选择翻页按钮时的加载到grid的数据
        displayInfo:true ,
        items:config.pageBarItems,
        plugins:config.pageBarPlugins
    })//end bbar;
    Ext.apply(this, config);
  
    Ext.ux.yiminghe.JsonGridPanel.superclass.constructor.call(this,arguments);
  
    if (this.doubleClick) {
        this.on('rowdblclick', function(grid2, rowIndex, ee)
        {

            var store = grid2.getStore();
            var oRecord = store.getAt(rowIndex);
            this.doubleClick(oRecord);
            ee.stopEvent();

        }, this);
    }
    
    if (this.singleClick) {
        this.on('rowclick', function(grid2, rowIndex, ee)
        {

            var store = grid2.getStore();
            var oRecord = store.getAt(rowIndex);
            this.singleClick(oRecord);
            ee.stopEvent();

        }, this);
    }


    if (this.rowcontextmenu) {
       
        Ext.ux.yiminghe.JsonGridPanel.addMenuScope(this.rowcontextmenu, this);
        this.on('rowcontextmenu', function(grid2, rowIndex, ee)
        {

            if (!this.rowcontextmenu_) {
                this.rowcontextmenu_ = Ext.menu.MenuMgr.get({
                    id:'rowcontextmenu_-ctx',
                    items: this.rowcontextmenu
                });
            }
            this.getSelectionModel().selectRow(rowIndex);
            this.rowcontextmenu_.showAt(ee.getXY());
            ee.preventDefault();
        }, this);
    }

}


Ext.extend(Ext.ux.yiminghe.JsonGridPanel, Ext.grid.GridPanel, {
    getSelectionRecords:function() {
        if (this.getSelectionModel().getSelections()[0])
            return  this.getSelectionModel().getSelections();
        else {
            alert('请选择数据!');
          return false;
          }
    },
      reload:function() {
      	this.getStore().reload();
      }
    ,
    getSelectionRecord:function() {
        if (this.getSelectionModel().getSelections()[0])
            return  this.getSelectionModel().getSelections()[0];
        else {
            alert('请选择数据!');
          return false;
          }
    }

});

Ext.ux.yiminghe.JsonGridPanel.addMenuScope = function (obj, sco) {
    if (!obj)  return;
    if(obj.length)
	    for (var i = 0; i < obj.length; i++) {
	        if (!obj[i] || typeof obj[i] == 'string')    continue;
	        obj[i]['scope'] = sco;
	        if (obj[i].menu)
	            yiminghe.dynamicTable.addMenuScope(obj[i].menu, sco);
	    }
}
 

 

  • 大小: 54.7 KB
分享到:
评论

相关推荐

    电子元件封装图 封装形式 电子 电子元件

    小外形封装(Small Outline Package,简称SO)是一种适用于集成电路的小型化封装形式,引脚分布在封装的两个长边上。 ### SSOP (Shrink Small Outline Package) 缩小型小外形封装(Shrink Small Outline Package,...

    芯片封装图形信息,封装类型

    DIP-tab封装是在DIP的基础上增加了一个散热片,以改善芯片的散热性能。这种封装方式适用于功率较大的器件,如晶体管和某些电源管理IC。 #### TO(Transistor Outline)晶体管外形封装 TO封装主要用于分立元件,如...

    封装Ext.grid.Grid+dwr实现增删该查

    总的来说,通过封装`Ext.grid.Grid`和DWR,我们可以构建出一个强大的Web应用,提供直观且高效的增删改查功能。这种技术组合在现代企业级Web应用中非常常见,因为它能够有效地处理大量数据,同时保持良好的用户交互性...

    各种芯片封装简易说明

    【芯片封装】是电子行业中一个至关重要的环节,它关乎到集成电路的可靠性和性能。封装的主要目的是保护芯片,提供电连接,以及便于安装在主板上。本文将深入探讨几种常见的芯片封装类型。 首先,【BGA(Ball Grid ...

    元器件封装知识 元器件封装知识

    总结,元器件封装是电子设计中的关键环节,涉及多个方面,包括封装类型、尺寸、材料、工艺、电气特性和散热设计等。理解并掌握这些知识点,有助于工程师在实际工作中做出合理的选择,优化产品性能和生产效率。

    c# PropertyGrid中复杂类型自定义显示

    在C#编程中,`PropertyGrid`控件是一个强大的工具,用于显示和编辑对象的属性。它自动将对象的公共属性、字段和枚举值显示为网格形式,方便用户进行交互。然而,当处理复杂类型的数据,如集合或自定义类时,`...

    芯片封装详细图解.ppt

    芯片封装涉及到多个环节,包括设计、材料选择、制造工艺等。 首先,封装材料有三种主要类型:金属封装、陶瓷封装和塑料封装。金属封装因其高强度和耐高温特性,常用于军事或航天领域,但商业化应用较少。陶瓷封装在...

    常见IC封装术语介绍

    - **问题与挑战**: BGA封装的一个主要问题是回流焊后难以进行外观检查。目前尚无明确的有效检查方法,有的观点认为由于焊点间距较大,连接相对稳定,因此主要依赖于功能测试。 #### 2. BQFP (Quad Flat Pack with ...

    芯片封装大全(图文对照).pdf

    DIP是一种常用的芯片封装方式,它具有简单、可靠的特点。DIP封装方式将芯片固定在PCB上,并使用双排引脚与外部连接。 5. PLCC (Plastic Leaded Chip Carrier) PLCC是一种常用的芯片封装方式,它具有小体积、高密度...

    各种IC封装形式图片

    SIP是最简单的封装形式之一,所有的引脚都排列在封装的一侧。这种封装形式常见于早期的集成电路和简单的模拟电路中。 ### SO(Small Outline Package,小外形封装) SO封装具有低轮廓、小尺寸的特点,引脚分布在...

    芯片IC封装形式图片介绍大全.pdf

    SIP封装的芯片可以从电路板的一个方向插入,节省空间。 4. SOIC(Small Outline Integrated Circuit,小外形集成电路封装) SOIC封装是一种流行的表面贴装封装,具有较小的外形尺寸和较好的散热性能,适用于广泛的...

    电子元器件封装图示大全.pdf

    《电子元器件封装图示大全》这本文档是一个关于电子元器件封装形式的详细参考资料。元器件封装是指封装技术,它不仅保护了芯片,同时为芯片提供了与外界连接的接口。该文档中所列出的封装类型几乎覆盖了所有常见的...

    IC封装大全IC封装大全IC封装大全

    BGA是一种常见的IC封装技术,它通过在芯片底部设置一个由球形触点组成的网格来实现电气连接。这种封装方式能够提供更高的I/O密度,并且有助于减小封装体积,提高电路板的空间利用率。 **应用场景:** 广泛应用于高...

    各种IC芯片封装库PCB

    1. **BGA(Ball Grid Array,球栅阵列封装)**:BGA封装因其底部的球形焊点阵列得名,具有高密度和短信号路径的优势,适合高性能处理器和复杂芯片。其优点在于减少了引脚数量,提高了I/O密度,但焊接和检测难度较大...

    非常齐全的芯片封装大全(含图片).pdf

    芯片封装是半导体集成电路生产的最后一个阶段,它将裸芯片固定、保护,并为芯片与外部电路的电气连接提供接口。芯片封装技术是随着集成电路的不断发展而进步的,其封装形式的多样性与复杂性体现了集成电路技术的成熟...

    IC封装大全及尺寸

    - **DIP**: 双排直插式封装,是最常见的IC封装之一。 - **DIP-tab**: 带有金属散热片的双排直插式封装。 - **DIP-metal heatsink**: 带有金属散热片的双排直插式封装,用于需要良好散热的组件。 ##### 6. **细...

    IC封装及尺寸大全(图文并貌)

    在电子设计领域,IC封装是至关重要的一个环节,它决定了集成电路如何与外部电路进行物理连接和电气接触。本文将详细解析几种常见的IC封装类型及其特点。 1. **SOP(Small Outline Package)**:这是一种标准的双列...

    封装类型简介

    衡量封装技术的先进程度的一个重要指标是芯片面积与封装面积之比,该比值越接近1,表示封装效率越高。此外,引线的长度也是一个关键因素,较短的引线可以减少信号传输延迟,而较长的引线则可能会引起信号失真。同时...

Global site tag (gtag.js) - Google Analytics