2009-02-24 54 views
0

好吧,我有一個由GridView製作的表格,並附上了一個tablesorter,它工作得很好。有多個點擊的jQuery tablesorter擴展問題?

然後我把它放在一個UpdatePanel內,並添加代碼重新綁定一個回傳,這裏是我的腳本:

function loadEvents() { $("table[id$='gv']").tablesorter(); } 
$(document).ready(function() { loadEvents(); }); 
function reBind() { 
    if (Sys.WebForms.PageRequestManager) { 
     var prm = Sys.WebForms.PageRequestManager.getInstance(); 
     prm.add_endRequest(function() { loadEvents(); }); 
    } 
} 

偉大的工程,我加載gridview的,整理作品。

  • 我點擊一個按鈕發佈回來,它工作正常。
  • 我再次點擊第一次點擊可以對它進行排序,分類,但它會卡住 - 在那裏 - 我可以更換列,但它永遠不會被整理下來?但後來......
  • 我再次點擊,它工作正常

這樣下去的,工作每隔一個點擊...任何想法?

回答

-1

你的問題聽起來像一個服務器端問題 - 排序只能在該表被綁定在相同的請求後才起作用。否則,排序的事件掛接找不到任何東西。

當然 - 如果你已經綁定了表,它已經被排序 - 所以現在你必須重新獲取數據。

這類問題是可怕的.Net頁面事件模型的常見問題。

最簡單的解決方法是確保您的表在ajax回發後在視圖狀態已被加載之後但事件觸發之前回彈,然後在事件觸發後再次獲取數據。問題是,那麼你有兩次你的數據。

更好的解決方法是避免在任何動態頁面元素中使用.Net的事件掛鉤。

這些類型的.Net頁面事件模型的問題是MVC中有這麼多興趣的原因之一。

+0

我不認爲你理解這個問題。它在回傳後重新綁定。我沒有任何服務器端排序打開,它是純粹的客戶端sop沒有「所以現在你必須再次獲得數據」。 – naspinski 2009-02-24 13:06:35