`

JS 动态创建Table,好麻烦啊 不玩了,繁琐的很

阅读更多
/**
 * xu.ui.HTMLWidget HTML 构件基类
 */
xu._class.create('xu.ui','HTMLWidget',xu.ui.Widget,{
	desc: 'HTML Widget Base Class',
	newInstance: function(){} ,
	config: function(options){
		xu.apply(this.options,options);
	} ,
	render: function(){alert(this.__str__() + " render() not implement");} 
	
});

/**
 * xu.ui.HTMLTable
 */
xu._class.create('xu.ui','HTMLTable',xu.ui.HTMLWidget,{
	desc: 'HTML Table' ,table:null,caption: null,thead: null ,tbody: null ,tfoot:null,
	options: {
		caption: null , columns: [] ,datas:{fields:[] ,records:[]} ,foots:[] ,
		css: {
			color: 'red'
		}
	} ,
	destroy: function(){
		if (!this.instance) return null ;
		with(this){
			instance.empty().remove();
			caption=null;tfoot=null;options = null ;thead=null;tbody=null;table=null;
		}
	},
	getWidget: function(){
		if (this.instance) return this ;
		this.instance = $eo.create('table');
		this.table = this.instance.ele;
		this.caption = this.table.createCaption();
		this.thead = this.table.createTHead();
		this.tbody = this.table.getElementsByTagName("tbody")[0] || this.table.appendChild($C("tbody"));
		this.tfoot = this.table.createTFoot();
		return this ;
	} ,
	render: function(ele){
		this.setCaption(this.options.caption);
		this.setTHead(this.options.columns);
		this.setTBody(this.options.datas);
		this.setTBody(this.options.foots);
		
		this.instance.css(this.options.css);
		this.instance.appendTo($eo(ele).ele);
		return this.instance.html() ;
	} ,	
	
	
	setCaption: function(v){
		if (v){
			this.caption.innerHTML = v ;
			this.options.caption = v ;
		}
	} ,	 
	setTHead: function(columns){
		if (xu.verify._arr(columns)){			
			var _tr = this.thead.insertRow(0);var _this = this ;			
			xu.array.each(columns,function(item,index){
				var _td = _tr.insertCell(index);
				_td.innerHTML = item.name ;
				if (item.width)
					xu.dom.css(_td,{width: item.width});
				if (item.dataIndex)
					xu.dom.attr(_td,{dataIndex: item.dataIndex});
				
			});
		}
	} ,
	setTBody: function(datas){
		if (xu.verify._obj(datas) && datas.fields && datas.records){
			var _this = this ;
			xu.array.each(datas.records,function(record,index){
				var _tr = _this.tbody.insertRow(index);
				xu.array.each(record,function(item,index){
					var _td = _tr.insertCell(index);
					_td.innerHTML = item ;
					
				});
			});
		}
	} ,
	setTFoot: function(foots){
		
	}
});

 

//测试例子如下:

$widget('xxx',{
	type: xu.ui.HTMLTable ,		
	config: {
		caption: 'xu.ui.HTMLTable',
		css: {
			color: 'blue',border: "1px solid #efc" ,
			'border-collapse':'collapse'
		} ,
		columns: [
			{name: "编号", width: "80px", dataIndex: "no."} ,
			{name: "城市", width: "80px", dataIndex: "name"} ,
			{name: "出/入", width: "80px", dataIndex: "o-i"} ,
			{name: "热门", width: "50px", dataIndex: "ishot"} 
		] ,
		datas: {
			fields: ["no.", "name",'o-i', "ishot"],
			records: [
				["001", "北京", "是", "是"],
				["002", "上海", "否", "是"],
				["003", "天津", "是", "是"]
			]
		}
	}
});
log($widget('xxx').render('tha'));
$widget.destroy('xxx');
	

 

 

页面文件如下:

<div id="tha"></div>

 

  • 大小: 4.8 KB
1
0
分享到:
评论
1 楼 vb2005xu 2010-01-19  
John Resig - Degrading Script Tags
http://ejohn.org/blog/degrading-script-tags/

相关推荐

    js动态创建Table

    总结,创建动态表格涉及的主要知识点包括: 1. DOM操作:创建元素、添加子元素、获取和设置属性。 2. `innerHTML`属性:用于插入HTML内容。 3. 事件处理:添加事件监听器,响应用户操作。 4. 动态创建按钮和设置按钮...

    js动态创建table点击按钮dom table tr添加操作

    本主题主要聚焦于如何利用JavaScript动态创建一个包含表格(table)的DOM结构,并且在表格行(tr)中添加可点击的按钮。这通常用于展示数据集,允许用户进行交互操作,比如删除、编辑或查看详情。 首先,我们需要...

    asp.net动态创建table并赋值

    asp.net动态创建table并赋值dt.Columns.Add...

    js创建table表格

    在JavaScript中创建动态的HTML表格是一项常见的任务,尤其在网页交互和数据展示中。下面将详细介绍如何使用JavaScript来创建带有下拉框和输入框的表格,并提供相关知识点。 首先,让我们理解HTML表格的基本结构。一...

    js的节点操作动态创建table表格,创建行,删除行.pdf

    JavaScript 动态创建 Table 表格和节点操作 根据提供的文件信息,我们可以总结出以下知识点: 1. 节点操作 在 HTML 文档中,所有内容都是节点,包括文档节点、元素节点、文本节点、属性节点和注释节点。节点操作...

    javascript动态的table标签

    javascript动态的table标签

    JS动态创建Table,Tr,Td并赋值的具体实现

    使用JavaScript可以创建动态的HTML内容。文档展示了通过JavaScript函数getzts()和callback5()来动态生成表格(Table),以及表格的行(Tr)和单元格(Td)。利用DOM操作方法如insertRow()和insertCell(),可以根据...

    JavaScript如何动态创建table表格

    创建动态表格的示例代码如下: ```javascript function createTable() { var tableNode = document.createElement("table"); tableNode.setAttribute("id", "table"); var row = parseInt(document....

    javascript动态生成table及处理.

    ### JavaScript 动态生成 Table 及处理 在现代 Web 开发中,动态生成 HTML 元素是一种非常实用的技术,尤其当涉及到数据展示时,如表格(`&lt;table&gt;`)。通过 JavaScript 动态生成表格可以更加灵活地管理和更新数据。...

    动态创建HtmlTable的问题

    动态创建HtmlTable的问题

    js动态生成table

    在JavaScript中,动态生成table是一种常见的网页交互功能,它允许我们根据需求在页面上实时创建、添加或删除表格行(tr)和单元格(td)。这个功能在数据展示、表格编辑或者用户交互丰富的应用场景中非常实用。下面...

    js动态添加table行

    本文代码主要实现了javascript如何操作table并动态添加行的方法

    JS实现动态修改table及合并单元格的方法示例

    在JavaScript中,动态修改表格(Table)以及合并单元格是常见的需求,特别是在处理数据展示或者报表生成时。以下将详细介绍如何使用JS实现这些功能。 首先,要动态修改表格,我们需要获取表格元素。在HTML中,表格...

    js实现漂亮的table表格

    本教程将详细介绍如何利用JavaScript (JS) 和 Cascading Style Sheets (CSS) 技术来创建一个漂亮且实用的table表格。 **一、HTML基础表格结构** 首先,我们需要在HTML文档中创建基本的表格结构。一个简单的表格由`...

    js动态操作table实例

    在JavaScript(JS)中,动态操作表格是一种常见的需求,它涉及到HTML DOM(Document Object Model)的元素操作。本文将深入探讨如何使用JavaScript实现对表格的动态添加、删除、修改和查询功能,结合给出的标签...

    JS 动态增加table

    在JavaScript中,动态增加table是一种常见的操作,尤其在网页交互和数据展示中。在这个场景中,我们看到的代码是用于JSP页面上的一个功能,它允许用户动态添加表格行(`&lt;tr&gt;`)到已有表格中。以下是相关知识点的详细...

    动态创建Table.TR。Td

    动态创建一个表格。动态创建一个表格。动态创建一个表格。

    js实现table分页可以动态生成table

    在JavaScript中实现表格(table)分页是一种常见的需求,特别是在数据量较大的网页应用中,为了提高用户体验和加载速度,我们通常会将数据分页展示。本文将深入探讨如何使用JavaScript来实现这一功能,并结合给定的...

    javascript下动态创建表格的三种方式

    ### JavaScript 下动态创建表格的三种方式 在网页开发过程中,经常需要通过JavaScript来动态地创建或更新HTML元素,其中就包括表格(`&lt;table&gt;`)。本文将详细介绍在JavaScript中动态创建表格的三种常见方法,并对每...

    javascript动态添加table

    在JavaScript中,动态添加table是一种常见的任务,尤其在构建数据驱动的Web应用时。这个功能允许开发者在用户交互或后台数据变化时实时更新页面上的表格。以下是对这一知识点的详细阐述: 1. **HTML表格基础** 在...

Global site tag (gtag.js) - Google Analytics