一个基于Extjs 3的支持单元格合并的面板

这是一个支持单元格合并的Panel,不是基于 GridPanel,而是基于 Ext.Panel 这个类。内部表格实现是基于 html 的  标签的。支持增删。代码依赖 Extjs 3 和 JQuery,请自行添加。废话少说,上代码。
摘要由CSDN通过智能技术生成
这是一个支持单元格合并的Panel,不是基于 GridPanel,而是基于 Ext.Panel 这个类。内部表格实现是基于 html 的 <table> 标签的。支持增删。效果图如下:

代码依赖 Extjs 3 和 JQuery,请自行添加。废话少说,上代码。

js 部分(直接调用 tableTag() 方法就可以显示出效果了):

Array.prototype.remove=function(dx)
{
	if(isNaN(dx) || dx > this.length || dx < 0) return false;

	for(var i=0,n=0;i<this.length;i++)
	{
		if(this[i] != this[dx]) this[n++] = this[i]
	}
	this.length -= 1
};


Ext.ns('Ext.ns.my.tag');

/**
 * 这是一个可以自适应、自动合并的表格面板。此代码依赖 JQuery。
 */
Ext.ns.my.tag.TagTablePanel = Ext.extend(Ext.Panel,
{
	/**
	 * 默认自动显示滚动条
	 */
	autoScroll : true, 
	/**
	 * 列标题。元素是 js 对象。下面是对象各个字段的意义:
	 * 
	 * header: 
	 * 		必输项;类型:文本。表示列标题
	 * 
	 * width: 
	 * 		可选项;类型:文本,正整数;单位:px。表示列宽。支持正整数,和'*', 'auto'。默认 '*'。
	 * 
	 * textHorizontalAlignment: 
	 * 		可选项;类型:文本。表示数据域文本水停靠位置。可选的值为:'left'、'center'、'justify'、
	 * 		'inherit'和'right'。默认不设定此项。
	 * 
	 * renderer:
	 * 		可选项;函数。用于根据数据渲染显示。参数 (oldValue, rowNum, colNum, record)。返回一个
	 * 		HTML 字符串。默认照常显示数据文本。
	 * 
	 * hidden: 
	 * 		可选项;类型:布尔值。表示当前列是否隐藏。true 表示隐藏。默认 false(不隐藏)。
	 */
	colHeaders: [],
	/**
	 * 要合并的列的序号,从 0 开始
	 */
    mergeCols: [],
    /**
     * 面板中的数据
     */
    records: [],
    /**
     * 被点击的单元格所在的列号,默认 -1
     */
    selectedColNumber: -1,
    /**
     * 被点击的单元格所在的行号,默认 -1
     */
    selectedRowNumber: -1,
    initComponent : function()
    {
    	Ext.ns.my.tag.TagTablePanel.superclass.initComponent.call(this); // 调用父类的初始化方法

    	// 初始化表格和列标题
    	this.html = '<table id="' + this.id + '-table" class="table-tag-table">' + this.getHeaderHtml(this) + '</table>';
	},
	/**
	 * 单元格被点击时,执行的回调函数。
	 * 
	 * 参数 _this:指 Panel 本身
	 * 参数 cell :指单元格所在的 Dom(td)
	 */
	cellClickCallback : function(_this, cell) { },
	/**
	 * private
	 * 获取表示列宽的 CSS 文本。
	 */
	getColWidthStyleText: function(width)
	{
		var w = 'width: ';
		if(width == undefined || width == '*') w += '*;';
		else if(width == 'auto') w += 'auto;';
		
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值