1

機能しない並べ替え可能なリスト ビューがあります。項目をドラッグ アンド ドロップし、Ajax がストアド プロシージャを呼び出して表示順序を更新すると、項目は元の順序に戻ります。

データベースは更新されているので、データベースの問題ではないことはわかっています。エラー メッセージはなく、ストアド プロシージャは「成功」を返します。リストビューとソート可能な設定が間違っているのでしょうか?

var DataSource;
$("#VideoView").kendoListView({
    dataSource: {
        type: "json",
        transport: {
            read: {
                type: "Get",
                contentType: "application/json; charset=utf-8",
                url: "../api/Admin_Videos",
                dataType: "json"
            },
            timeout: 120000
        },
        sort: [{ field: "DisplayOrder", dir: "asc" }],
        serverSorting: true
    },
    dataBound: function () {
        $(this.items()).on("dblclick", function () {
            data = DataSource[$("div.product").index(this)];
            EditVideo(data);
        });
    },
    dataBinding: function() {
        DataSource = this.dataSource.data();
    },
    template: kendo.template($("#VideoViewTemplate").html())
});

$("#VideoView").kendoSortable({
    filter: ">div.product",
    cursor: "move",
    placeholder: function (element) {
        return element.clone().css("opacity", 0.1);
    },
    hint: function (element) {
        return element.clone().removeClass("k-state-selected");
    },
    change: function (e) {
        var items = $("#VideoView").data("kendoListView").items();
        var itemList = items.children("img");
        var newList = '';

        for (var i = 0; i < items.length; i++) {
            newList = newList + itemList.eq(i).attr("id") + ','
        }
        newList = newList.substring(0, newList.length - 1);

        $.ajax({
            type: "Post",
            contentType: "application/json; charset=utf-8",
            url: "../api/Admin_VideoReorder",
            datatype: "json",
            data: JSON.stringify({ ID: newList }),
            success: function (d) {
                // rebind data
                $("#VideoView").data("kendoListView").dataSource.read();
            }
        });
    }
});
4

0 に答える 0