2012-03-20 7 views
0

このjqueryでリピータ行をソートしようとしています。しかし、私はソート項目を保存することができません。私を助けてください 。どのようにデータベースにソートなどの.aspxページに保存することができ、事前にこのjQueryでリピータ行をソートしようとしています

<script language="javascript" type="text/javascript"> 
$("#defaultList").sortable(); 

$(document).ready(function() { 


    $("#defaultList").sortable(

    { 
     update: function (ev, ui) { 

      var result = $('#defaultList').sortable('toArray'); 
      updateSequenceNumber(result); 
     } 

    } 


); 

}); 


function updateSequenceNumber(items) { 

    var originalIdAndSequenceNumber = ''; 
    var index = 0; 

    for (i = 0; i <= items.length - 1; i++) { 

     if (items[i].length == 0) 
      continue; 

     var item = $('#' + items[i])[0]; 

     originalIdAndSequenceNumber += item.attributes["originalId"].nodeValue + ":" + index.toString(); 
     originalIdAndSequenceNumber += "|"; 
     index = index + 1; 
    } 

    persistPositionUsingAjax(originalIdAndSequenceNumber); 

} 

function persistPositionUsingAjax(originalIdAndSequenceNumber) { 

    $.ajax(

    { 
     type: "POST", 
     dataType: "text", 
     url: "AjaxService.asmx/UpdateSequenceNumber", 
     data: "s=" + originalIdAndSequenceNumber, 
     success: function (response) { 

     } 
    } 

    ); 

} 
ありがとう

私のAjaxの方法:?

[WebMethod] 
public string UpdateSequenceNumber(string s) 
{ 
    s = s.TrimEnd('|'); 
    string updateQuery = @"update dnn_Table_1 set SortId = {0} 
     where ImageId = {1}"; 
    StringBuilder sb = new StringBuilder(); 

    string[] originalIdAndSeqNumberArray = s.Split('|'); 

    foreach (var originalIdAndSeqNumberCombined in originalIdAndSeqNumberArray) 
    { 
     var tempArray = originalIdAndSeqNumberCombined.Split(':'); 
     int originalId = Convert.ToInt32(tempArray[0]); 
     int sequenceNumber = Convert.ToInt32(tempArray[1]); 

     sb.Append(String.Format(updateQuery, sequenceNumber, originalId)); 
     sb.Append(System.Environment.NewLine); 
    } 

    UpdateInDatabase(sb.ToString()); 

    return "Hello World"; 
} 

private void UpdateInDatabase(string updateQuery) 
{ 
    SqlDataProvider sqd = new SqlDataProvider(); 
    string ConnectionString = sqd.ConnectionString; 
    SqlConnection conn = new SqlConnection(ConnectionString); 
    SqlCommand command = new SqlCommand(updateQuery, conn); 
    command.CommandText = updateQuery; 

    conn.Open(); 
    command.ExecuteNonQuery(); 

    conn.Close(); 
} 

答えて

1

何ステータスコードは、AJAX呼び出しのリターンしていますか?

私には、あなたは数回の反復の後だけでは動作しません。この

update dnn_Table_1 set SortId = 3 where ImageId = 2update dnn_Table_1 set SortId = 2 where ImageId = 4update dnn_Table_1 set SortId = 7 where ImageId = 6 

ようになりますことをUPDATEステートメントを構築している500のように見えます。 SQLの更新を別々に構築するか、UpdateInDatabaseをforeachループに移動してみてください。

私は見つからなかった他の問題があるかもしれませんが、これは出発点かもしれません。

+0

http://highoncoding.com/Articles/513_Pimp_Up_List_Sorting_Using_JQuery.aspxに役立ちます願っています。私はこのウェブサイトを参照しています。私を助けてください。 – user1240045

+0

doh私はsb.Append(System.Environment.NewLine)を見ませんでした。私はMySqlを考えていました。 あなたが言及した記事を読んでください。 okだと思われるようですが、ajaxコードの実際の応答は何ですか?火かき棒やバイブレータなどで確認してください。あなたの接続に何か問題があるかもしれません。 –

+0

#defaultListをソート可能なものとして2回宣言しています。最初のものを取り外します。また、hte ajaxの成功関数では、警告(応答)を入れます。 –

関連する問題