2011-07-26 7 views
1

私はC#で構築されたシンプルなCMSによって管理される映画のテーブルと俳優のテーブルを持っています。ユーザーはムービーページ上のリスト内のアクターの順序を調整する必要があります。私はjqueryソート可能なこれは非常に素晴らしいUIを提供すると思うし、私は完全によくgridview上に実装することができます。jqueryを使用してソートすると、データベース内のリストの順序を管理できますか?

stop: function (event, ui) { 
     alert("New position: " + ui.item.index()); 
     var x1 = ui.item.index(); 
    } 

二スニペットはちょうど私が読むことができることを証明することであること:下記のコード:以下のように

<script type="text/javascript"> 
    $(function() { 
     $('table').filter(function() { 
      return $('tr', this).length > 2; 
     }) 
     .sortable({ 
      items: 'tr:not(:first)', 
      axis: 'y', 
      scroll: true    
     }).disableSelection(); 
    }); 
</script> 

私は、コードの誰かを使用しても、ドラッグしたアイテムの新しい位置をつかむことができましたが、サイト上で共有しました新しいポジションですが、私がやるべきことには役に立たないのです。

actorsテーブルには、actorID、movieID、orderのreleventフィールドを持つ行があります。アクタがUIで並べ替えられたとき、新しい注文値をデータベースに書き戻す必要があります。これは私がこれを行う最善の方法に疑問を抱く場所です。

1)ソート可能なウィジェットは、最初にdb内のデータを管理するための合理的な選択ですか?

2)そうであれば、udpated値を書き込むスマートなアプローチは何ですか?ほとんどのユーザーが一人しかいないため、パフォーマンスは重要ではありませんが、リストには10​​0個近くのアイテムが存在する可能性がありますが、いつでも並べ替えが1つまたは2つしかない可能性があります。

答えて

1

1)私はjQueryテーブルのドラッグ&ドロッププラグインと同様のことをするページを持っています。ユーザーは行をドラッグしてテーブルをソートし、その順序を保存します(PDFレポートなどで使用されます)。 UIがあなたの目的のために働くならば、それを行うためにソート可能なものを使用することは完全に合理的です。 :)

2)最も簡単なやり方は、何かの並べ替え順序を変更するときには、リスト全体を見て、IDと注文の配列(または順序だけでも)を構築することです。次に、jQuery ajax()コマンドを使用してその配列をサーバーに戻します。

サーバでは、int配列(または何を返すか)を想定したコントローラアクションがあります。その注文をサーバーに保存できます。その部分は標準的なサーバーコードなので、かなり簡単です。

私はあなたにいくつかのコード例を書いていますが、残念ながら今は時間がありません。 :(jQueryを使ってajax呼び出しを行うのはかなり簡単ですが、多くの例があります:)

+0

これはうまくいくようです。私はサーバー側のコードを処理することができますが、私はあなたがjavascriptでIDの配列を構築し、それを戻す方法を私に示すことができれば、それは完璧だろう。 – nycdan

関連する問題