Angular remote Datasource in Grid - update not working

3 posts, 0 answers
  1. Patrick
    Patrick avatar
    4 posts
    Member since:
    Sep 2014

    Posted 02 Mar 2015 Link to this post

    Note: This is a duplicate of http://www.telerik.com/forums/editable-grid-with-angular---update-not-working as I am not sure wheter this is a problem of the DataSource configuration or the grid configuration (or both).

    I am using a kendo-ui grid together with angular and would like to
    use it's edit functionality. However the update function is never called
    when trying to edit its contents.

    This is how I set the grid:


    angular.module("KendoDemos", [ "kendo.directives" ])
            .controller("MyCtrl", function($scope){
                $scope.mainGridOptions = {
                    dataSource: {
                        type: "odata",
                        transport: {
                            read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Employees",
                              update: function(options){
                              console.log("updated");
                            }
                        }
                    },
                      editable: "inline",
                    columns: [{
                        field: "FirstName",
                        title: "First Name",
                        width: "120px"
                        },{
                        field: "LastName",
                        title: "Last Name",
                        width: "120px"
                        },{
                        field: "Country",
                        width: "120px"
                        },{
                        field: "City",
                        width: "120px"
                        },{
                          command: ["edit", "destroy"],
                          title: " ",
                          width: "250px"
                        }]
                };
      
            })

    Here is a fiddle to demonstrate it: http://jsfiddle.net/xLp6rLtj/

    Even if I'm using a url instead of function in the
    datasource.transport.update parameter, no request is made (and the
    button can't be released).

    What am I missing?

  2. Patrick
    Patrick avatar
    4 posts
    Member since:
    Sep 2014

    Posted 03 Mar 2015 in reply to Patrick Link to this post

    I was able to resolve this. It seemed to be a problem with the dataSource configuration.

    ¨                    dataSource: {
                            batch: false,
                            transport: {
                                read: {
                                    url: "http://www.......",
                                    dataType: "json"
                                },
                                update: {
                                    url: function(options) {
                                        return "http://www...." + options.id;
                                    },
                                    type: "PUT",
                                    dataType: "json"
                                }
    (...)


    If done this way, it works.
     
    English (Auto-Erkennung) » German
     
  3. Kendo UI is VS 2017 Ready
  4. Vladimir Iliev
    Admin
    Vladimir Iliev avatar
    2172 posts

    Posted 04 Mar 2015 Link to this post

    Hi Patrick,


    From the provided information it seems that the reason for current behavior is that the dataSource is missing the "dataSource.schema.model.id" and "dataSource.schema.model.field" options which is mendatory for enabling the editing:

    Also you can send additional request parameters by setting the "transport.update.data" option to function which to return them: 

    Regards,
    Vladimir Iliev
    Telerik
     
    Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
     
Back to Top