KendoGrid: can't disable autosync + all other lines are disabled after "destroy"

Viewed 27

I tried so solve this for a while now, but cannot find the solution.

  1. I cannot disable autosync for some reason. Everytime I click on "destroy" for a single row, transport.submit is triggered (and would send data to the server). I actually only want to trigger submit once, when I click the "save" button.

Is this expected behaviour? Should I handle the server communications externaly and only save locally in transport.submit? Or am I doing something wrong?

  1. Once I remove one item using the "destroy" button, all other items are disabled until I press the "cancel" button.

How can I avoid this?

Here is my Code:

$(document).ready(function () {

    var myData = getDataSource();

    var dataGrid = $("#divOverview").kendoGrid({
      dataSource: myData,
      sortable: true,
      filterable: true,
      pageable: true,
      toolbar: ["save", "cancel"],
      columns: [
        // Dataworld
        { field: "Dataworld", width: "180px" },
        // Servername
        { field: "Servername"},
        // IPAddress
        { field: "IPAddress"},
        // Commands
        { command: ["destroy"], title: " ", width: "250px" }
      ],
      editable: {
        mode: "inline",
        confirmation: false
      }
    });
});

function getDataSource(){
   var datasource = new kendo.data.DataSource({
        transport: {
            read: function(options) {
                $.ajax({
                  url: "../AccountSyncConfig/GetAccountSyncConfig.erb",
                  dataType: "json",
                  data: {mandatorID: mandatorID},
                  success: function(result) {
                    options.success(result);
                  },
                  error: function(result) {
                    options.error(result);
                  }
                });
            },
            submit: function(e) {
              var data = e.data;
              console.log(data);
            },
            parameterMap: function(data, type) {
              if (type == "read") {
                return { mandatorID: mandatorID};
              } else if (type == "submit") {
                //console.log( {models: JSON.stringify(data.models)} );
                return {
                  data: kendo.stringify({
                    mandatorID: mandatorID,
                    models: data.models
                    })
                };
              } else {
                return "";
              }
            }
        },
        schema: {
            model: {
                id: "EntryID",
                fields: {
                    Dataworld: {
                        type: "string",
                        validation: {
                          required: true
                        }
                    },
                    Servername: {
                        type: "string",
                        validation: {
                          required: true
                        }
                    },
                    IPAddress: {
                        type: "string",
                        validation: {
                          required: true,
                          IPAddressvalidation: function (input) {
                            if (input.val() != "") {
                                input.attr("data-IPAddressvalidation-msg", "Ungültige IP-Adresse");
                                return /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(input.val());
                            }
                            return true;
                          }
                        }
                    }
                },
            }
        },
        autoSync: false,
        batch: true,
        pageSize: 10
    });
    
    return datasource;
}
0 Answers
Related