注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发AJAX → 文章内容

让SortTable和Asp.net Ajax和睦相处

作者:佚名 来源:不详 发布时间:2007-12-10 22:10:42

  相信很多人都可能用过SortTable这个对Table元素进行排序的JS类库。

  SortTable只需要设置Table的class就可以实现简单的应用。如果需要复杂引用,可以到下面的下载地址链接里面找到答案。这里就不再多说了。

  下载地址:http://www.kryogenix.org/code/browser/sorttable/

  可是如果在引用了SortTable同时用到了Asp.net Ajax.呵呵,这下绝对热闹。好像仇敌一样。

  错误提示:

  Sys.ArgumentTypeException: Object of type ‘Object’ cannot be converted to type ‘Array’

  经过几个小时的努力,通过FireFox+FireBug的协力帮助,终于找到症结。主要是SortTable里面的forEach实现和Asp.net Ajax的forEach实现有冲突。

  当然,要让Ajax.net Ajax里面的forEach失效可不是什么容易的事情。只能让SortTable里面的forEach失效了。通过多SortTable里面的 forEach进行分析,最终舍弃了SortTable里面的forEach实现并且将实现代码去除,然后将forEach改成了for实现。终于……和睦相处了。

  当然还可以有更好的改法,就是将forEach的方法改名,但是发现SortTable引用的forEach也就那么一点,于是用for了。

  有两处需要修改:

  第一处:

  //原始代码  // 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);   }         }; 

  第二处:

//原始代码   //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','');   }   }; 


更多内容请看PCdog.com--Ajax技术  ASP.NET应用篇  JAVA和.Net开发专题
  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved