Extjs 组件继承 模板说明(同GridPanel案件)

1. 重写initComponent()方法,并在该方法在调用父类的initComponent()方法。 
如:subclass.superclass.initComponent.call(this);
2. 在initComponent中,出现以下语句,覆盖父类属性
Ext.apply(this, {
    title : "aaa"
});
3. 基本模板代码例如以下:
Ext.ns("my.component");

my.component.MyGridPanel = Ext.extend(Ext.GridPanel,{
	/**
	 * 初始化组件
	 */
	initComponent : function(){
		// 数据仓库
		var store = this.store;
		if(!store){
			store = this.buildStore(this.baseParams);
		}
		// 列模型
		var cm = this.cm;
		if(!cm){
			cm = this.buildCm();
		}
		// 复选框.组件属性使用selModel配置
		var sm = new Ext.grid.CheckboxSelectionMedol();

		Ext.apply(this, {
			// 这里加上组件的属性
			selModel : sm,
			// 分页工具条
			bbar : new Ext.PagingToolbar({

			}),
			colModel : new Ext.grid.ColumnModel({
				// 这里加上列模型的属性
				columns : cm;
			}),
			// 对该组件设置监听器
			listeners : {
				"dbclick" : function(){},
				"rowClick" : function(){},
				......
			}
		});
		my.component.MyGridPanel.superclass.initComponent.apply(this);
	},
	/**
	 * 构建store
	 */
	buildStore : function(baseParams){
		Ext.apply(baseParams, {
			// 分页条件
		});
		return new Ext.data.JsonStore({
			url : "",
			idProperty : "", // id属性值配置
			totalProperty : "", //
			autoLoad : boolean,
			root : "data" // 数据的根。后面的json格式对象数组。
			fields : [
				{name : "", mapping : ""},
				{name : "", mapping : ""},
				......
			]
		});
	},
	/**
	 * 构建数据列
	 */
	buildCm : function(){
		return [
			{name : "", dataIndex : ""},
			{name : "", dataIndex : ""}
		];
	},

	// 通过选择模型,获取选中的记录。是多条的
	getSelections : function(){
		var records = this.getSelectionModel().getSelections();
		return records;
	}

	// 通过选择模型。获取选中的记录。仅仅有一条
	getSelected : function() {
		var record = this.getSelectionModel().getSelected();
	}

});


版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-06 14:29:53

Extjs 组件继承 模板说明(同GridPanel案件)的相关文章

Extjs 组件继承 模板说明(以GridPanel为例)

1. 重写initComponent()方法,并在该方法在调用父类的initComponent()方法.  如:subclass.superclass.initComponent.call(this); 2. 在initComponent中,出现下面语句,覆盖父类属性 Ext.apply(this, { title : "aaa" }); 3. 基本模板代码如下: Ext.ns("my.component"); my.component.MyGridPanel =

extjs类继承图之组件

前言 组件类的继承图. 类的继承图 参考 ExtJs组件结构继承图 版权声明:本文为博主原创文章,未经博主允许不得转载.

模拟 extjs 底层继承

1.混合继承的弊端 混合继承在继承原型的时候,其实将 父类的模板 再次继承,影响效率 // 混合继承 function Person(name,age) { this.name = name; this.age = age; } Person.prototype = { constructor : Person, sayHello : function () { alert("hello"); } } function Boy(name,age,sex) { //Person.call

用 php 实现一个视图组件和模板引擎——基础

只要不是做后端接口开发和一些作为守护进程之类的服务器脚本,大多数时候都是在和浏览器打交道,因此合理组织并展现 html 标签是最为常见的工作.一般大家使用框架时,都会自带有一套视图组件和模板引擎. 我们不讨论这些组件和引擎的好坏.因为这些东西已经经过考验,可以在生产环境下使用.我们现在只是为了学习一些东西,这时候了解一些原理上的可能对以后的帮助更大,如果一些人真的很有时间,利用这些基础知识完全可以写一个自己的组件,即可当做练习,也可以拿去自用. 好了,说这么多,我还是希望很多人明白,视图和模板引

Angular2组件开发—模板的逻辑控制(二)

使用分支逻辑 如果组件的模板需要根据某个表达式的不同取值展示不同的片段,可以使用NgSwitch系列指令来动态切分模板.比如右边示例中的广告组件EzPromotion,需要根据来访者性别的不同推送不同的广告: NgSwitch包含一组指令,用来构造包含多分支的模板: NgSwitch NgSwitch指令可以应用在任何HTML元素上,它评估元素的ngSwitch属性值,并根据这个值 决定应用哪些template的内容(可以同时显示多个分支): 1 <any [ng-switch]="exp

Angular2组件开发—模板语法(二)

directives - 使用组件 在Angular2中,一个组件的模板内除了可以使用标准的HTML元素,也可以使用自定义的组件! 这是相当重要的特性,意味着Angular2将无偏差地对待标准的HTML元素和你自己定义的组件.这样, 你可以建立自己的领域建模语言了,这使得渲染模板和视图模型的对齐更加容易,也使得模板的语义性 更强: 声明要在模板中使用的组件 不过,在使用自定义组件之前,必需在组件的ViewAnnotation中通过directives属性声明这个组件: 1 @View({ 2 d

模板类继承模板类

今天写的代码提交到OJ上就出现这样的错误,但是vs并不会出错. '_elem' was not declared in this scope 原因在于模板类继承模板类,子类看不见父类的成员. 但是VC++做了一些小拓展,可以不适用this->就调用父类成员. gcc在扫描到模板类时就要求确定每一个成员在哪里声明的,VC++在类实例化之后再检测,就不会有这个问题. 可以使用以下方式解决: 方法1: 使用this template<typename T> class A { protecte

#003 React 组件 继承 自定义的组件

主题:React组件 继承 自定义的 组件 一.需求说明 情况说明: 有A,B,C,D 四个组件,里面都有一些公用的逻辑,比如 设置数据,获取数据,有某些公用的的属性,不想在 每一个 组件里面写这些属性,怎么办? [和 面向对象的语言,C#,Java 的基类 思想是 一样的] 如果公用的东西,是一些方法,可以 使用 React 的 Mixins(ES5) ,高阶组件(ES6)[高阶函数不太了解,如何使用,去找下资料 ] 但是如果有公用的属性,那么就有点 力不从心了 在想,React 中,是否可用

无废话ExtJs 入门教程十七[列表:GridPanel]

无废话ExtJs 入门教程十七[列表:GridPanel] extjs技术交流,欢迎加群(201926085) 在Extjs中,GridPanel用于数据显示,即我们平时说的列表页.在本节中,我们先对GridPanel有个基本的认识,后继过程再做Demo练习详细讲解在开发中的应用. 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/