Javascript 使用Jquery拖放时自动保存数据&;不用按按钮就可以放下

Javascript 使用Jquery拖放时自动保存数据&;不用按按钮就可以放下,javascript,jquery,asp.net,ajax,Javascript,Jquery,Asp.net,Ajax,嗨,我一直在用谷歌搜索我的问题的答案,但我似乎找不到正确的答案,所以在这里,我希望你们这些可爱的家伙能帮助我 我在asp.net中有一个gridview,使用jquery我成功地使网格可以拖放,就像在中一样,您可以通过D&D功能对行重新排序。目前,我有一个更新按钮,允许用户将订单保存在数据库中(通过服务器端代码隐藏,无论VB、C是什么)。这一切都很好,但如果在删除行时调用服务器端例程保存行顺序(所有行),而不是让用户按下按钮,则会更好 我已经尝试了很多方法,其中一个例子是ajax调用,但是我无法

嗨,我一直在用谷歌搜索我的问题的答案,但我似乎找不到正确的答案,所以在这里,我希望你们这些可爱的家伙能帮助我

我在asp.net中有一个gridview,使用jquery我成功地使网格可以拖放,就像在中一样,您可以通过D&D功能对行重新排序。目前,我有一个更新按钮,允许用户将订单保存在数据库中(通过服务器端代码隐藏,无论VB、C是什么)。这一切都很好,但如果在删除行时调用服务器端例程保存行顺序(所有行),而不是让用户按下按钮,则会更好

我已经尝试了很多方法,其中一个例子是ajax调用,但是我无法实现这些,其他人知道我如何在不按下按钮的情况下直接对db进行拖放更改吗

我的原始拖放gridview Jquery

$x(function () {
           $x("[id*=gv]").sortable({
                items: 'tr:not(tr:first-child)',
                cursor: 'pointer',
                axis: 'y',
                dropOnEmpty: false,
                start: function (e, ui) {
                    ui.item.addClass("selected");
                },
                stop: function (e, ui) {
                    ui.item.removeClass("selected");
                },
                receive: function (e, ui) {
                    $x(this).find("tbody").append(ui.item);
                }
            });
        });
然后我想我可以通过stop函数捕捉到发生了什么变化,于是添加了

$x(function () {
               $x("[id*=gv]").sortable({
                    items: 'tr:not(tr:first-child)',
                    cursor: 'pointer',
                    axis: 'y',
                    dropOnEmpty: false,
                    start: function (e, ui) {
                        ui.item.addClass("selected");
                    },
                    stop: function (e, ui) {
                        ui.item.removeClass("selected");
                    var code = ui.item.attr("ID");
                    var pos = ui.item.index();
                    var options = {
                        type: "POST",
                        url: "mywebform.aspx/MyMethod",
                        data: JSON.stringify({
                            ID: code,
                            POS: pos
                        }),
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (response) {

                        }
                    };
                    $x.ajax(options);
                    },
                    receive: function (e, ui) {
                        $x(this).find("tbody").append(ui.item);
                    }
                });
            });
然后在代码后面创建一个webmethod函数(请注意,这是在vb.net中,由于限制,如果答案是c#,我很好)


公共共享函数MyMethod(ByVal ID作为字符串,ByVal POS作为整数)作为字符串
尺寸a=ID&“,”和位置
返回“”
端函数

现在理想情况下,我会让这个函数获取数据并将其保存到我们的数据库中,但我在这里的主要目标是在调试时启动它,因此为什么这个函数没有真正做任何事情

似乎有一个名为
sortupdate
的事件在更新列表后触发。你应该能够把你的功能放在那里,然后它就会启动

请查看以下答案以开始:

<System.Web.Script.Services.ScriptMethod()>
<System.Web.Services.WebMethod>
Public Shared Function MyMethod(ByVal ID As String, ByVal POS As Integer) As String
    Dim a = ID & ", " & POS
    Return ""
End Function