CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > SOA子站 > SOA评论分析

让SortTable和Asp.net Ajax和睦相处

作者: ,  出处:rdxx, 责任编辑: 李春禹, 
2008-04-04 08:00
  相信很多人都可能用过SortTable这个对Table元素进行排序的JS类库。   SortTable只需要设置Table的class就可以实现简单的应用。如果需要复杂引用,可以到下面的下载地址链接里面找到答案。

  相信很多人都可能用过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;iNT.GETELEMENTSBYTAGNAME('TABLE').LENGTH;I++)< p>
  {
  // 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
  {
  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','');
  }
  };

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i