2009-02-22 44 views
3

我使用JQuery.Sortable()函數來創建項目,像這樣向數據庫提交序列化的JQuery可排序結果的最佳方式是什麼?

<script type="text/javascript"> 
    // When the document is ready set up our sortable with it's inherant function(s) 
    $(document).ready(function() { 
     $("#goal-list").sortable({ 
      handle: '.handle', 
      placeholder: 'ui-state-highlight', 
      update: function() { 
       var order = $('#goal-list').sortable('serialize'); 
       $("#info").load("/goals/process?" + order); 
      } 
     }); 
    }); 
</script> 

該回來的結果重新排序的列表是一個逗號分隔的ID的項目列表(即1,2,3, 4,5,6等)

我想知道什麼是提交到相關項目表的sortorder列的最佳方式...我可以循環和更新每條記錄,但我認爲這是數據庫寫入非常多,並且可能會造成潛在的瓶頸,特別是如果列表相當大。

我使用LINQ到SQL和ASP.NET MVC

回答

3

我建議你看看到延遲執行更多,如果您正在使用LINQ工作,SQL。這可能是一個常見的陷阱。特別是當使用關聯時。

實際上可以將多個插入和更新組合在一起..直到在數據庫上下文中調用SaveChanges或SubmitChanges之前,它們都不會寫入數據庫。

如果循環通過一組項目,並對其進行修改..然後調用的SaveChanges退出循環,羣更新語句應一起進行批處理併發送至一個行程分貝以後。

+0

感謝那些做這個訣竅......我有時會忘記你可以在LINQ中做那種事情 – dswatik 2009-02-22 16:58:12

相關問題