因为做的项目中,需要实现这样一个功能,在html页面中的表格行,要求可以由用户来自行调整上下的顺序。不知道现有的技术能否实现这样功能,有待研究一下。在这之前已经知道并应用过,可以通过脚本来动态创建表格,但仅用了其中很简单的功能而已。昨天上班时特意下载了一份中文的微软DHTML参考手册,今天晚上正好来仔细研究一下其中的table对象。
首先研究了如何实现所需要的功能,查看tr对象的方法,发现最后有一个swapNode的方法,看了这个方法的详细说明(是英文的,看来这本手册也没有完全翻译成中文,还好也能看懂),交换html文档中的两个对象。那只要把两个tr对象交换一下不就可以实现我所需要的功能了,原来如此简单。
另一个问题是,我需要知道当前操作的行(tr)在表格中是第几行,当然可以自己定义参数传递,但比较麻烦,一旦行交换后,这个行对象(tr)所对应的参数也要变化,写程序不是很方便。再看tr的属性,有一个叫rowIndex的属性,可以取得当前行位于表格中的第几行,正是所需要的。根据以上的两个方法,很快就实现了所需要的功能。具体看例子:
1
2
3
4
问题解决了,再来看看table中有什么好用的东西,有新的发现再报告。
1.table的RULES属性:可以设置表格的分隔线是否显示
all:显示所有表格线
cols:显示内部竖线和外框
rows:显示内部横线和外框
none:只显示外框,所有内部线都不显示
groups:显示外框,内部横线在THEAD,TBODY,TFOOT对象之间显示,竖线在所有的colGroup对象之间显示。
不设置该属性时,如果定义了表格(table)的border属性,则显示所有的表格线,如果没有定义border属性,则全部不显示,包括外框。
2.frame属性,类似于RULES,也是用来设置表格的边框是否显示
3.moveRow方法:table中还有一个moveRow的方法,也可以用来实现行的交换
4.关于绑定数据的研究:table的dataSrc属性可以给表格绑定一个数据源,表格中显示该数据源的内容,然后可以调用table的firstPage,lastPage,nextPage,previousPage等方法方便快速的实现翻页,可以用dataPageSize来指定每页显示的记录数。只初步的了解这些,日后在仔细研究关于绑定数据源的做法。