2017-02-15 12 views
0

ColumnNameSortOrderの2つのフィールドを含むデータベーステーブルがあります。JQuery Sortableを使用して並べ替えた後に.NET Gridviewの行順を保存する方法

私はgridviewを使用して、C#.NET WebアプリケーションのページにColumnNameフィールドを表示しています。

ユーザーは、グリッドビューの行をドラッグアンドドロップして行の並べ替えを行い、DBテーブルのSortOrderフィールドに新しい行番号を挿入することで、この新しい注文をデータベースに保存できます。

JQueryUI Sortableを使用してドラッグ&ドロップ機能を動作させることができました。しかし、私はデータベースにそれを得ることができるように行のサーバー側の新しい順序を取得するために苦労しています。私は以下のC#のコードを書いた新しい行の順序のクライアント側を得ることができるかどうかを確認するための試験として

GridViewのコード

<asp:GridView ID="GV_ColumnNames" runat="server" CssClass="sortable"> 
    <Columns> 
     <asp:BoundField DataField="ColumnName" HeaderText="ColumnName" SortExpression="ColumnName" /> 
    </Columns> 
</asp:GridView> 

jQueryの

$(function() { 

     $(".sortable").sortable({ 
      items: "tr:not(tr:first-child)", 
      axis: "y" 
     }).disableSelection(); 

    }); 

が、これは単に出力元の行順序。

protected void BTN_Confirm_Click(object sender, EventArgs e) 
    { 
     string orderTest = ""; 

     foreach(GridViewRow row in GV_FlatFileColumnSetting.Rows) 
     { 
      orderTest += row.Cells[0].Text; 
     } 

     Response.Write(orderTest); 

    } 

誰もが、私はDBに新しい秩序を挿入するSQLコマンドを実行することができますので、私はクライアント側からサーバ側への行の順序を取得する方法についての任意のアイデアを持っていますか?

ご協力いただきまして誠にありがとうございます。

答えて

0

jqueryは、要素を削除するたびにトリガされる更新イベントとしてソート可能です。また、現在表示されている順序で要素のIDの配列を返すtoArrayメソッドもあります。 これをAJAXで実行すると、サーバーサイドコードを呼び出すためにこのようなことができます。 これは、idの配列を、サーバーサイドでデコードする必要のあるjson文字列として渡します。申し訳ありません

$(function() { 
 
    $(".sortable").sortable({ 
 
    items: "tr:not(tr:first-child)", 
 
    axis: "y", 
 
    update: function(event, ui) { 
 
     var sortedIDs = $(event.target).sortableGrid("toArray"); 
 
     $.ajax({ 
 
     url: your url, 
 
     data: JSON.stringify(sortedIDs) 
 
     }); 
 
    } 
 
    }).disableSelection(); 
 
});

私はあなたのサーバー側を助けるが、このことができます願っていカントので、私は.NETを知りません。

関連する問題