This is a migrated thread and some comments may be shown as answers.

Error on update 'a is undefined'

1 Answer 301 Views
Data Source
This is a migrated thread and some comments may be shown as answers.
Eel
Top achievements
Rank 1
Eel asked on 10 Apr 2012, 02:58 PM
Code:

var datasourceBrokers = new kendo.data.DataSource({
                        
                        transport: {
                            read: {
                                url: "@Url.Action("GetBrokersFromEvent", "Allianz")" + "?id=" +  $("#input").data("kendoComboBox").value(),
                                type: "POST"
                             },
                            update: {
                                url:"@Url.Action("SaveBroker", "Allianz")",
                                type: "POST"
                            },
                            parameterMap: function (data, operation) {
            
                                    if (operation != "read") {
               
                                        var result = {};

                                        for (var i = 0; i < data.models.length; i++) {
                                            var broker = data.models[i];

                                            for (var member in broker) {
                                                result["broker[" + i + "]." + member] = broker[member];
                                            }
                                        }
                                        
                                        return result;
                                    }

                                }
                        },
                        batch: true,
                        schema: {
                            model: {
                                id: "ID",
                                fields: {
                                    ID: { editable: false, nullable: false },
                                    Titlecode: { editable: false, nullable: true },
                                    FirstName: { editable: false, nullable: true },
                                    LastName: { editable: false, nullable: true },
                                    Email: { editable: false, nullable: true },
                                    Businessphone: { editable: false, nullable: true },
                                    Mobilephone: { editable: false, nullable: true },
                                    Language: { editable: false, nullable: true },
                                    EventId: { editable: false, nullable: true },
                                    FirmaId: { editable: false, nullable: true },
                                    Registered: { editable: false, nullable: true },
                                    ImportLabel: { editable: false, nullable: true },
                                    FirmaCustomerID: { editable: false, nullable: true },
                                    LanguageCode: { editable: false, nullable: true },
                                    ParentCustomer: { editable: false, nullable: true },
                                    AllianzContactId: { editable: false, nullable: true },
                                    AccountId: { editable: false, nullable: true },
                                    SegmentationParentCustomer: { editable: false, nullable: true },
                                    NoofEmployeesParentCustomer: { editable: true, nullable: true },
                                    ContactId: { editable: false, nullable: true },
                                    NordSud: { editable: false, nullable: true },
                                    Acmaad: { editable: false, nullable: true },
                                    Acmavi: { editable: false, nullable: true },
                                    ContacManager: { editable: true, nullable: true },
                                    OverFlow12: { editable: true, nullable: true },
                                    OverFlow13: { editable: false, nullable: true },
                                    OverFlow14: { editable: false, nullable: true },
                                    OverFlow15: { editable: false, nullable: true }
                                }
                            }
                        }
                      
                    });
                    
                    $("<div/>").appendTo(e.detailCell).kendoGrid({
                        dataSource: datasourceBrokers,
                        scrollable: false,
                        sortable: true,
                        pageable: true,
                        editable: true,
                        toolbar: ["save", "cancel"],
                        columns: [
                        { field: "ParentCustomer", title: "Broker" },
                        { field: "FirstName", title: "First Name" },
                        { field: "LastName", title: "Last Name" },
                        { field: "SegmentationParentCustomer", title: "Segmentation" },
                        { field: "ContacManager", title: "Invited by" },
                        { field: "OverFlow12", title: "Status" }
                    ]
                    });
                }
            }

Error (after changes in the grid, and update clicked):in  kendo.web.min.js:
a is undefined

The code in parameterMap gives the right objects.


1 Answer, 1 is accepted

Sort by
0
Sven
Top achievements
Rank 2
answered on 11 Apr 2012, 08:09 AM
Solved the problem:

Object from entityframework won't be send back in that way, the entityKey and EntityState members have to be skipped, code should be like this:

 },
                            parameterMap: function (data, operation) {
            
                                    if (operation != "read") {
               
                                        var result = {};

                                        for (var i = 0; i < data.models.length; i++) {
                                            var broker = data.models[i];

                                            for (var member in broker) {
                                                if(member != "EntityKey" && member !="EntityState")
                                               result["brokers[" + i + "]." + member] = broker[member];
                                            }
                                        }
                                        
                                        return result;
                                    }

                                }
Tags
Data Source
Asked by
Eel
Top achievements
Rank 1
Answers by
Sven
Top achievements
Rank 2
Share this question
or