讓SortTable和Asp.net Ajax和睦相處

來源:互聯網
上載者:User

相信很多人都可能用過SortTable這個對Table元素進行排序的JS類庫。

SortTable只需要設定Table的class就可以實現簡單的應用。

可是如果在引用了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
{
// 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','');
}
};

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.