• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

让 SortTable 和 Asp.net Ajax 和睦相处

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
相信很多人都可能用过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','');
                }
           };

然后呵呵……好了

下面是我改好的JS包,而且将编码规则改成了UTF-8,这样可以去除因为网页编码的问题。给大家都用用

https://files.cnblogs.com/tishifu/SortTable.rar

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
asp.net BS拖拽工作流设计及研发(附Demo源码)发布时间:2022-07-10
下一篇:
Asp.netCore认证和授权:Cookie认证发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap