0

我有第一列可编辑的剑道网格,但是如果我单击该列并更改值并单击另一行,它会回滚更改。我需要再次单击同一行以使其保持不变。

public createAppliedDesignGrid(gridSelector: string, isDetail: bool, rowData: any) {
        var self = this;
        var rowTemplate = (isDetail) ? "#rowAppliedRuleProgramDetailTemplate" : "#rowAppliedRuleProgramTemplate";
        var designItemSchema = API.Schema.DesignItemModel();
        designItemSchema.gridcolumns[2] = {
            hidden: true,
            command: {
                name: "remove", text: "remove", click: function (e) {
                    e.preventDefault();
                    var uid = $(e.currentTarget).closest("tr").data('uid');
                    var dataItem = this.dataSource.getByUid(uid);

                    if (dataItem != null) {
                        // alert("Remove" + dataItem.Id);
                        //self.ShowAppliedRulesModal(dataItem.Id, dataItem.DesignTypeId);
                        self.RemoveAppliedDesign(self, dataItem);
                        self.bumpDesignPriority(null, dataItem.DesignTypeId, dataItem.Priority.valueOf(), 999999);
                        this.dataSource.remove(dataItem);

                    }
                }
            }, title: " ", width: "0px"
        };
        designItemSchema.gridcolumns[3] = {
            hidden: true,
            command: {
                text: "Select", click: function (e) {
                    e.preventDefault();
                    var uid = $(e.currentTarget).closest("tr").data('uid');
                    var dataItem = this.dataSource.getByUid(uid);
                    if (dataItem != null) {
                        //alert("Show popup for " + dataItem.Id);
                        self.ShowAppliedRulesModal(dataItem.Id, dataItem.DesignTypeId);
                    }
                }
            }, title: " ", width: "0px"
        };


        var options = {
            dataSource: {
                type: "json",
                transport: {
                    read: function (options) {
                        if (self.ViewModel().Id == undefined) {
                            options.success({ data: [], total: 0 });
                            return;
                        }
                        if (options.data.filter == null) {
                            options.data.filter = {
                                logic: "and",
                                filters: new Array()
                            };
                        }
                        if (rowData != null) {
                            options.data.filter.filters.push({ field: "ParentProgramId", operator: "eq", value: rowData.Id });
                            if (rowData.ImportedDesignId != null)
                                options.data.filter.filters.push({ field: "ImportedDesignId", operator: "eq", value: rowData.ImportedDesignId });
                            if (rowData.DesignTypeId != null)
                                options.data.filter.filters.push({ field: "DesignTypeId", operator: "eq", value: rowData.DesignTypeId });
                        }

                        $.ajax("/API/DesignItem/?$context=KendoGrid&$vm=KendoDesignItemChildren",
                            {
                                dataType: 'json',
                                data: options.data,
                                cache: false,
                                success: function (result) {
                                    options.success(result);
                                }
                            });
                    }
                },
                schema: designItemSchema,
                serverFiltering: true,
                serverPaging: true,
                pageSize: 50,
                sort: { field: "Priority", dir: "asc" }

            },
            // scrollable: true,
            scrollable: {
                virtual: false
            },
            pageable: { pageSizes: false, numeric: false },
            columns: designItemSchema.gridcolumns,
            editable: true,
            sort: { field: "Priority", dir: "asc" },
            //detailInit: function (e) { return self.appliedDesignDetail(self, e); },
            //autoBind: isDetail ? true : false
            //, rowTemplate: kendo.template($(rowTemplate).html())
        };

        return options;
    }

public static DesignItemModel() {
        var columns = new Array(
            { field: 'Priority', width: '10%', title: '' },
            { field: 'Name', width: '90%', title: 'Name' }
        );
        var schema: IKendoSchema = {
            data: "data",
            total: 'total',
            batch: true,
            model: {
                id: "Id",
                fields: {
                    Id: { type: "int", editable: false },
                    Name: { type: "string", editable: true },
                    Description: { type: "string", editable: false },
                    DesignTypeId: { type: "int", editable: false },
                    FormularyTypeId: { type: "int", editable: false },
                    PBMId: { type: "int", editable: false },
                    StartDate: { type: "datetime", editable: false },
                    EndDate: { type: "datetime", editable: false },
                    IsClientProgram: { type: "bool", editable: false },
                    IsAvailableToAllClients: { type: "bool", editable: false },
                    Priority: { type: "int", editable: true },
                    HasApprovedVersion: { type: "bool", editable: false },
                    ImportedDesignId: { type: "int", editable: false }
                }
            },
            gridcolumns: columns
        }
        return schema;
    }
4

0 回答 0