导读:
相信很多人都可能用过SortTable这个对Table元素进行排序的JS类库。
www@bitscn@com
SortTable只需要设置Table的class就可以实现简单的应用。如果需要复杂引用,可以到下面的下载地址链接里面找到答案。这里就不再多说了。 中国_网管联盟bitsCN.com
下载地址:http://www.kryogenix.org/code/browser/sorttable/[bitsCN.Com]
可是如果在引用了SortTable同时用到了Asp.net Ajax.呵呵,这下绝对热闹。好像仇敌一样。 www@bitscn@com
错误提示: bitsCN.nET*中国网管博客
Sys.ArgumentTypeException: Object of type ‘Object’ cannot be converted to type ‘Array’ [bitsCN.Com]
经过几个小时的努力,通过FireFox+FireBug的协力帮助,终于找到症结。主要是SortTable里面的forEach实现和Asp.net Ajax的forEach实现有冲突。
[bitsCN.Com]
当然,要让Ajax.net Ajax里面的forEach失效可不是什么容易的事情。只能让SortTable里面的forEach失效了。通过多SortTable里面的 forEach进行分析,最终舍弃了SortTable里面的forEach实现并且将实现代码去除,然后将forEach改成了for实现。终于……和睦相处了。
中国_网管联盟bitsCN.com
当然还可以有更好的改法,就是将forEach的方法改名,但是发现SortTable引用的forEach也就那么一点,于是用for了。 bitsCN.nET*中国网管博客
有两处需要修改:
中国_网管联盟bitsCN.com
第一处:
BBS.bitsCN.com网管论坛
//原始代码
// Array.forEach(document.getElementsByTagName('table'), function(table) {
// if (table.className.search(//bsortable/b/) != -1) {
// sorttable.makeSortable(table);
// }
// });
// alert(document.getElementsByTagName('table').length);
// //修改代码
for(i=0;i<document.getElementsByTagName('table').length;i++)
{
// alert(document.getElementsByTagName('table').length);
table=document.getElementsByTagName('table')[i];
if (table.className.search(//bsortable/b/) != -1)
{
sorttable.makeSortable(table);
}
}; [bitsCN.Com]
中国_网管联盟bitsCN.com
第二处:
bitsCN.nET*中国网管博客
//原始代码
//forEach(theadrow.childNodes, function(cell) {
// if (cell.nodeType == 1) {
// cell.className = cell.className.replace('sorttable_sorted_reverse',');
// cell.className = cell.className.replace('sorttable_sorted',');
// }
// });
//修改代码
for(i=0;i<theadrow.childNodes.length;i++)
{
var cell=theadrow.childNodes[i];
if (cell.nodeType == 1) { // an element
cell.className = cell.className.replace('sorttable_sorted_reverse',');
cell.className = cell.className.replace('sorttable_sorted',');
}
};
本文转自
http://www.bitscn.com/dotnet/xml/200709/109619.html
相信很多人都可能用过SortTable这个对Table元素进行排序的JS类库。
www@bitscn@com
SortTable只需要设置Table的class就可以实现简单的应用。如果需要复杂引用,可以到下面的下载地址链接里面找到答案。这里就不再多说了。 中国_网管联盟bitsCN.com
下载地址:http://www.kryogenix.org/code/browser/sorttable/[bitsCN.Com]
可是如果在引用了SortTable同时用到了Asp.net Ajax.呵呵,这下绝对热闹。好像仇敌一样。 www@bitscn@com
错误提示: bitsCN.nET*中国网管博客
Sys.ArgumentTypeException: Object of type ‘Object’ cannot be converted to type ‘Array’ [bitsCN.Com]
经过几个小时的努力,通过FireFox+FireBug的协力帮助,终于找到症结。主要是SortTable里面的forEach实现和Asp.net Ajax的forEach实现有冲突。
[bitsCN.Com]
当然,要让Ajax.net Ajax里面的forEach失效可不是什么容易的事情。只能让SortTable里面的forEach失效了。通过多SortTable里面的 forEach进行分析,最终舍弃了SortTable里面的forEach实现并且将实现代码去除,然后将forEach改成了for实现。终于……和睦相处了。
中国_网管联盟bitsCN.com
当然还可以有更好的改法,就是将forEach的方法改名,但是发现SortTable引用的forEach也就那么一点,于是用for了。 bitsCN.nET*中国网管博客
有两处需要修改:
中国_网管联盟bitsCN.com
第一处:
BBS.bitsCN.com网管论坛
//原始代码
// Array.forEach(document.getElementsByTagName('table'), function(table) {
// if (table.className.search(//bsortable/b/) != -1) {
// sorttable.makeSortable(table);
// }
// });
// alert(document.getElementsByTagName('table').length);
// //修改代码
for(i=0;i<document.getElementsByTagName('table').length;i++)
{
// alert(document.getElementsByTagName('table').length);
table=document.getElementsByTagName('table')[i];
if (table.className.search(//bsortable/b/) != -1)
{
sorttable.makeSortable(table);
}
}; [bitsCN.Com]
中国_网管联盟bitsCN.com
第二处:
bitsCN.nET*中国网管博客
//原始代码
//forEach(theadrow.childNodes, function(cell) {
// if (cell.nodeType == 1) {
// cell.className = cell.className.replace('sorttable_sorted_reverse',');
// cell.className = cell.className.replace('sorttable_sorted',');
// }
// });
//修改代码
for(i=0;i<theadrow.childNodes.length;i++)
{
var cell=theadrow.childNodes[i];
if (cell.nodeType == 1) { // an element
cell.className = cell.className.replace('sorttable_sorted_reverse',');
cell.className = cell.className.replace('sorttable_sorted',');
}
};
本文转自
http://www.bitscn.com/dotnet/xml/200709/109619.html