2009-02-22 4 views
3

J'utilise la fonction JQuery.Sortable() pour créer une liste reorderable d'articles comme siQuelle est la meilleure façon de valider un résultat triable JQuery sérialisé dans la base de données?

<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> 

Le résultat qui revient est une liste délimitée par des virgules de l'élément ID (c.-à-1,2,3, Ce que je veux savoir quel est le meilleur moyen de commettre ceci à la colonne de tri de la table de l'article relatif ... Je pourrais boucler et mettre à jour chaque enregistrement mais je pense que c'est un tas d'écritures de base de données et pourrait poser un goulot de bouteille potentiel surtout si la liste est plutôt grande.

J'utilise LINQ to SQL et ASP.NET MVC

Répondre

3

Je vous recommande de regarder dans l'exécution différée plus si vous travaillez avec LINQ to SQL. Cela peut être un piège commun .. surtout lorsque vous utilisez des associations.

Plusieurs insertions et mises à jour peuvent être regroupées ensemble .. elles ne seront pas écrites dans la base de données tant que SaveChanges ou SubmitChanges n'aura pas été appelé dans le contexte db.

Si vous boucle à travers un ensemble d'éléments et de les modifier .. puis appelez SaveChanges après avoir quitté la boucle, le groupe d'instructions de mise à jour devrait être envoyé et traitement par lots de la db en un seul voyage ..

+0

Merci qui ont fait l'astuce ... J'oublie parfois que vous pouvez faire ce genre de chose dans LINQ – dswatik