4

Kendo Grid の列の 1 つで定義された destroy コマンドがあります。

columns: [
    {
        field: "Address",
        width: "200px"
    },
    {
        field: "City"
    },
    {
        field: "State",
        width: "40px"
    },
    {
        field: "Zip",
        width: "60px"
    },
    {
        field: "Active",
        width: "50px"
    },
    {
        command: ["edit", "destroy"],
        title: " ",
        width: "210px" 
    }
]

編集可能は、グリッドのインラインに設定されています。データソースの Batch は true に設定されています。

編集と保存は正常に機能します (すべてのモデルは JSON 形式で SAVE メソッドに送信されます)。

しかし、行の 1 つで DELETE をクリックすると、グリッドから行が削除されますが、すべてのアイテムを保存したのと同じように動作します。save メソッドを呼び出して、削除したい行を除くすべての行を JSON オブジェクトで送信します。

問題は、destroy メソッドを呼び出さないのはなぜですか?

destroy メソッドを呼び出して、削除される行だけを送信するべきではありませんか?

データソース定義:

dataSource: {
    error    : function (e) {
        CustomError(e);
    },
    type     : "json",
    transport: {
        read        : {
            contentType: "application/json; charset=utf-8",
            type       : "POST",
            url        : "../Services/svcPerson_Address.asmx/Search",
            dataType   : "json",
            cache      : false,
            complete   : function (e) {
                //alert(e);
            }
        },
        update      : {
            contentType: "application/json; charset=utf-8",
            type       : "POST",
            url        : "../Services/svcPerson_Address.asmx/Save",
            dataType   : "json",
            cache      : false,
            complete   : function (e) {
                if (typeof (e.responseText) != "undefined") {
                    var response = $.parseJSON(e.responseText);
                }
            }
        },
        destroy     : {
            contentType: "application/json; charset=utf-8",
            url        : "../Services/svcPerson_Address.asmx/Delete",
            type       : "POST",
            dataType   : "json",
            cache      : false,
            complete   : function (e) {
            }
        },
        create      : {
            contentType: "application/json; charset=utf-8",
            type       : "POST",
            url        : "../Services/svcPerson_Address.asmx/Save",
            cache      : false,
            complete   : function (e) {
                if (typeof (e.responseText) != "undefined") {
                    var response = $.parseJSON(e.responseText);
                }
            }
        },
        parameterMap: function (options, operation) {
            if (operation !== "read" && options.models) {
                return kendo.stringify({ models: options.models });
            }

            options.PersonId = 0;
            if (viewModel.SelectedPreceptor != null) {
                if (viewModel.SelectedPreceptor.PersonId != "" && viewModel.SelectedPreceptor.PersonId != null) {
                    options.PersonId = viewModel.SelectedPreceptor.PersonId;
                }
            }

            return kendo.stringify(options);
        }
    },
4

1 に答える 1

5

私は同じ問題を抱えていました: モデルに間違った ID が設定されていました。

私のコードは次のとおりです。

model: {
    id: "Id",
    fields: {
        UserId: { editable: false },
        ....

しかし、次のようになっているはずです:

model: {
    id: "UserId",
    fields: {
        UserId: { editable: false },
        ....
于 2013-06-20T12:19:30.883 に答える