正在尝试使用此jQuery对转发器行进行排序

本文关键字:转发器 排序 jQuery | 更新日期: 2023-09-27 18:28:16

我正在尝试用这个jquery对中继器行进行排序。但我无法保存排序项目。请帮帮我。如何在数据库和.aspx页面中保存排序?提前感谢

<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();
}

正在尝试使用此jQuery对转发器行进行排序

ajax调用返回什么状态代码?

对我来说,它看起来像500。您正在构建一个更新语句,经过几次迭代后,它将看起来像这个

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

那是行不通的。尝试以不同的方式构造SQL更新,或者将UpdateInDatabase移到foreach循环中。

可能还有其他问题我没有发现,但这可能是一个起点。

希望对有所帮助