Checkbox Reverting to Original Value on grid.saveChange()

2 posts, 0 answers
  1. Jordan
    Jordan avatar
    3 posts
    Member since:
    Apr 2020

    Posted 27 Aug 2020 Link to this post

    Hello.

    I have a grid that contains user information and a few checkbox templates. Whenever I edit set the checkbox to true or vice versa and click save changes the checkbox reverts to its original value.

     

    Here are the main snippets that handle this event: 

    $("#btnSaveChanges").click(function () {
               grid = $("#grid").data("kendoGrid");
               grid.saveChanges();
           });
    function SetActive(e) {
        grid = $("#grid").data("kendoGrid");
        dataItem = grid.dataItem($(e).closest("tr"));
        dataItem.set("IsAssigned", e.checked);
        grid.refresh();
    }
    function renderGrid(value) {
        grid = $("#grid").kendoGrid({
            dataSource: {
                sort: { field: "NameFirst", dir: "asc" },
                batch: true,
                pageSize: 100,
                error: function (e) {
                    if (typeof e.errors !== 'undefined') {
                        alert(e.errors);
                    }
                },
                requestEnd: function (e) {
                    if (e.type === "update") {
                        $('#grid').data('kendoGrid').dataSource.read();
                    }
                },
                transport: {
                    read: {
                        url: "GetContacts",
                        dataType: "json",
                        cache: false,
                        data: function () {
                            return {
                                ID: $("#DDLConceptID").val(),
                                isNational: $("#DDLConceptID").find('option:selected').attr("data-isNational")
                            };
                        }
                    },
                    update: {
                        url: "UpdateContacts",
                        dataType: "json",
                        type: "POST"
                    },
                    parameterMap: function (data, type) {
                        if (type === "update") {
                            return { entities: kendo.stringify(data.models) };
                        }
                        else {
                            return data;
                        }
                    }
                },
                schema: {
                    data: "Data",
                    total: "Total",
                    errors: "Errors",
                    model: {
                        id: "ContactID",
                        fields: {
                            Email: { type: "string" },
                            IsAssigned: { type: "boolean" },
                            RoleID: { type: "string" },
                            ConceptID: { editable: false },
                            ContactID: { editable: false },
                            RcvEmail: { type: "boolean" },
                            RcvQAEmail: { type: "boolean" },
                            RcvOrderEmail: { type: "boolean" },
                            Seq: { editable: true },
                            DistName: { editable: false },
                            RoleDescription: { type: "string" },
                            NameFirst: { type: "string" },
                            NameLast: { type: "string" },
                            Phone: { type: "string" }
                        }
                    }
                }
            },
            sortable: true,
            filterable: {
                extra: false,
                operators: {
                    string: {
                        contains: "Contains"
                    }
                }
            },
            height: 600,
            pageable: true,
            scrollable: true,
            editable: true,
            autoBind: value,
            columns: [
                { field: "ContactConceptID", title: "Contact ID", hidden: true },
                { field: "ConceptID", title: "Concept ID", hidden: true },
                { field: "ContactID", title: "Contact ID", hidden: true },
                { field: "IsNational", title: "Is National", hidden: true },
                { field: "Seq", title: "Seq", width: 100 },
                { field: "NameFirst", title: "First Name", width: 150 },
                { field: "NameLast", title: "Last Name", width: 150 },
                { field: "Phone", title: "Phone", width: 250 },
                { field: "RoleDescription", title: "Role", width: 140 },
                { field: "RoleID", title: "Type", width: 100, editor: roleIDEditor },
                { field: "Email", title: "E-mail", width: 250 },
                { title: "Assigned", template: '<input class="btnActive" onchange=\'SetActive(this);\' type="checkbox" #= IsAssigned ? checked="checked" : "" # class="assignChkbx" />', width: 125 },
                { title: "Notes E-mail", template: '<input type="checkbox" #= RcvEmail ? checked="checked" : "" # class="rcvEmailChkbx" />', width: 125 },
                { title: "QA E-mail", template: '<input type="checkbox" #= RcvQAEmail ? checked="checked" : "" # class="rcvQAEmailChkbx" />', width: 125 },
                { title: "Order E-mail", template: '<input type="checkbox" #= RcvOrderEmail ? checked="checked" : "" # class="rcvOrderEmailChkbx" />', width: 125 },
                { field: "DistName", title: "Distributor", width: 200 },
                { command: { name: "Remove", text: "Remove", click: removeBDCAM }, width: 85 }
            ],//end of columns
     
     
        }).data('kendoGrid')
     
     
    }

     

  2. Martin
    Admin
    Martin avatar
    299 posts

    Posted 31 Aug 2020 Link to this post

    Hello Jordan,

    Thank you for the provided code snippets.

    Based on them, I tried to reproduce the issue you are experiencing in this Dojo example. You can see that after pressing the SaveChanges button, the new value of the checkbox is saved instead of the original one. Could you please modify the example to replicate the problem? I will then test it and happily assist you.

    Looking forward to your reply.

    Regards,
    Martin
    Progress Telerik

    Virtual Classroom, the free self-paced technical training that gets you up to speed with Telerik and Kendo UI products quickly just got a fresh new look + new and improved content including a brand new Blazor course! Check it out at https://learn.telerik.com/.

Back to Top