New to Kendo UI for jQueryStart a free 30-day trial

Transport.destroy

configuration

The configuration used when the data source destroys data items. Those are items removed from the data source via the remove method.

The data source uses jQuery.ajax to make an HTTP request to the remote service. The value configured via transport.destroy is passed to jQuery.ajax. This means that you can set all options supported by jQuery.ajax via transport.destroy except the success and error callback functions which are used by the transport.

If the value of transport.destroy is a function, the data source invokes that function instead of jQuery.ajax.

If the value of transport.destroy is a string, the data source uses this string as the URL of the remote service.

All transport actions (read, update, create, destroy) must be defined in the same way, that is, as functions or as objects. Mixing the different configuration alternatives is not possible.

transport.destroy

Object|String|Function
<script>
var dataSource = new kendo.data.DataSource({
  transport: {
    read: {
      url: "https://demos.telerik.com/service/v2/core/products"
    },
    destroy: {
      url: "https://demos.telerik.com/service/v2/core/products/destroy",
      type: "POST",
      contentType: "application/json"
    },
    parameterMap: function(data, type) {
      if (type == "destroy") {
        // send the destroyed data items as the "models" service parameter encoded in JSON
        return kendo.stringify(data.models)
      }
    }
  },
  batch: true,
  schema: {
    model: { id: "ProductID" }
  }
});
dataSource.fetch(function() {
  var products = dataSource.data();
  // remove the first data item
  dataSource.remove(products[0]);
  // send the destroyed data item to the remote service
  dataSource.sync();
});
</script>
<script>
var dataSource = new kendo.data.DataSource({
  transport: {
    read: function(options) {
      $.ajax({
        url: "https://demos.telerik.com/service/v2/core/products",
        success: function(result) {
          options.success(result);
        }
      });
    },
    destroy: function (options) {
      $.ajax({
        url: "https://demos.telerik.com/service/v2/core/products/destroy",
        type: "POST",
        contentType: "application/json",
        data: kendo.stringify(options.data.models),
        success: function(result) {
          // notify the data source that the request succeeded
          options.success(result);
        },
        error: function(result) {
          // notify the data source that the request failed
          options.error(result);
        }
      });
    }
  },
  batch: true,
  schema: {
    model: { id: "ProductID" }
  }
});
dataSource.fetch(function() {
  var products = dataSource.data();
  dataSource.remove(products[0]);
  dataSource.sync();
});
</script>

If set to false, the request result will not be cached by the browser. Setting cache to false will only work correctly with HEAD and GET requests. It works by appending "_={timestamp}" to the GET parameters. By default, "jsonp" requests are not cached.

Refer to the jQuery.ajax documentation for further information.

<script>
var dataSource = new kendo.data.DataSource({
  transport: {
    destroy: {
      /* omitted for brevity */
      cache: true
    }
  }
});
</script>

The content-type HTTP header sent to the server. The default is "application/x-www-form-urlencoded". Use "application/json" if the content is JSON. Refer to the jQuery.ajax documentation for further information.

<script>
var dataSource = new kendo.data.DataSource({
  transport: {
    destroy: {
      /* omitted for brevity */
      contentType: "application/json"
    }
  }
});
</script>

transport.destroy.data

Object|Function

Additional parameters which are sent to the remote service. The parameter names must not match reserved words, which are used by the Kendo UI DataSource for sorting, filtering, paging, and grouping.

Refer to the jQuery.ajax documentation for further information.

<script>
var dataSource = new kendo.data.DataSource({
  transport: {
    destroy: {
      /* omitted for brevity */
      data: {
        name: "Jane Doe",
        age: 30
      }
    }
  }
});
</script>
<script>
var dataSource = new kendo.data.DataSource({
  transport: {
    destroy: {
      /* omitted for brevity */
      data: function() {
        return {
          name: "Jane Doe",
          age: 30
        }
      }
    }
  }
});
</script>

The type of result expected from the server. Commonly used values are "json" and "jsonp".

Refer to the jQuery.ajax documentation for further information.

<script>
var dataSource = new kendo.data.DataSource({
  transport: {
    destroy: {
      /* omitted for brevity */
      dataType: "json"
    }
  }
});
</script>

The type of request to make ("POST", "GET", "PUT" or "DELETE"). The default request is "GET".

The type option is ignored if dataType is set to "jsonp". JSONP always uses GET requests.

Refer to the jQuery.ajax documentation for further information.

<script>
var dataSource = new kendo.data.DataSource({
  transport: {
    destroy: {
      /* omitted for brevity */
      type: "POST"
    }
  }
});
</script>

transport.destroy.url

String|Function

The URL to which the request is sent.

If set to a function, the data source will invoke it and use the result as the URL.

<script>
var dataSource = new kendo.data.DataSource({
  transport: {
    read: {
      url: "https://demos.telerik.com/service/v2/core/products"
    },
    destroy: {
      url: "https://demos.telerik.com/service/v2/core/products/destroy",
      type: "POST",
      contentType: "application/json"
    },
    parameterMap: function(data, type) {
      if (type == "destroy") {
        return kendo.stringify(data.models)
      }
    }
  },
  batch: true,
  schema: {
    model: { id: "ProductID" }
  }
});
dataSource.fetch(function() {
  var products = dataSource.data();
  dataSource.remove(products[0]);
  dataSource.sync();
});
</script>
<script>
var dataSource = new kendo.data.DataSource({
  transport: {
    read: {
      url: "https://demos.telerik.com/service/v2/core/products"
    },
    destroy: {
      url: function (options) {
        return "https://demos.telerik.com/service/v2/core/products/destroy"
      },
      type: "POST",
      contentType: "application/json"
    },
    parameterMap: function(data, type) {
      if (type == "destroy") {
        return kendo.stringify(data.models)
      }
    }
  },
  batch: true,
  schema: {
    model: { id: "ProductID" }
  }
});
dataSource.fetch(function() {
  var products = dataSource.data();
  dataSource.remove(products[0]);
  dataSource.sync();
});
</script>