Quantcast
Channel: Telerik Forums RSS
Viewing all articles
Browse latest Browse all 99250

Incell editing mode saves when "tab" out of cell but not blur/click away from cell

$
0
0

I've researched some similar questions about this problem but without any success. The demo examples of the grid don't seem to have this problem but they use odata if that matters. Here's my grid and datasource configs:

01.vards = newkendo.data.DataSource({
02.    autoSync: true,
03.    transport: {
04.        create: function(options) => {
05.            console.warn('kendo: data: transport: create');
06.            options.success(that.getEmptyRow());
07.        },
08.        read: function(options) {
09.            console.warn('kendo: data: transport: read');
10.            // Save for resolution via setState
11.            that.gridDataUpdateHandler = options;
12.        },
13.        update: function(options) {
14.            console.warn('kendo: data: transport: update');
15.            if(utils.isGuid(options.data.id)) {
16.                // create, get new ID from server
17.                options.data.id = moment().unix();
18.                ServerActionCreators.addCode(window['encounterId'], options.data);
19.                // optimistic
20.                options.success();
21.            } else{
22.                // update
23.                ServerActionCreators.updateCode(window['encounterId'], options.data);
24.                // optimistic
25.                options.success();
26.            }
27.        },
28.        destroy: function(options: kendo.data.DataSourceTransportOptions) {
29.            console.warn('kendo: data: transport: destroy');
30.            ServerActionCreators.destroyCode(window['encounterId'], options.data);
31.            // optimistic
32.            options.success();
33.        }
34.    },
35.    schema: {
36.        model: {
37.            id: 'id',
38.            fields: {
39.                {
40.                    "rowNum": {
41.                        "type": "number",
42.                        "editable": false
43.                    },
44.                    "gf": {
45.                        "type": "string",
46.                        "editable": false
47.                    },
48.                    "gfd": {
49.                        "type": "boolean",
50.                        "editable": false,
51.                        "defaultValue": null
52.                    },
53.                    "code": {
54.                        "type": "string",
55.                        "validation": {}
56.                    },
57.                    "codeType": {
58.                        "type": "string",
59.                        "editable": true,
60.                        "defaultValue": "typeX"
61.                    },
62.                    "pa": {
63.                        "type": "string",
64.                        "editable": true
65.                    },
66.                    "description": {
67.                        "type": "string",
68.                        "editable": true
69.                    }
70.                }
71.            }
72.        }
73.    },
74.    change: function(e) {
75.        console.warn('kendo: data: change: '+ e.action);
76.        // this is never called, even when user tabs out of cell
77.        if(e.action === 'itemchange') this.sync();
78.    },
79.    sync: function(e) {
80.        console.warn('kendo: data: sync');
81.    },
82.    requestStart: function(e) {
83.        if(this.grid && e.type === 'update') {
84.            this.lastCellPosition = this.getCurrentCellPositionInfo();
85.            this.isUpdating = true;
86.        } else{
87.            this.isUpdating = false;
88.        }
89.        console.warn('kendo: data: request start');
90.    },
91.    requestEnd: function(e) {
92.        console.warn('kendo: data: request end');
93.    },
94.});

and

001.vargridConfig = {
002.    dataSource: ds,
003.    sortable: false,
004.    editable: {
005.        createAt: 'bottom'
006.    },
007.    columns: [{
008.        "field": "rowNum",
009.        "headerAttributes": {
010.            "class": "col-row-num"
011.        },
012.        "attributes": {
013.            "class": "col-row-num"
014.        },
015.        "title": "#"
016.    }, {
017.        "field": "code",
018.        "title": "Code",
019.        "headerAttributes": {
020.            "class": "col-code"
021.        },
022.        "attributes": {
023.            "class": "col-code"
024.        }
025.    }, {
026.        "field": "codeType",
027.        "title": "Code Type",
028.        "headerAttributes": {
029.            "class": "col-code-type"
030.        },
031.        "attributes": {
032.            "class": "col-code-type"
033.        },
034.        "hidden": true
035.    }, {
036.        "field": "description",
037.        "title": "Description",
038.        "headerAttributes": {
039.            "class": "col-description cpt4-col-description"
040.        },
041.        "attributes": {
042.            "class": "col-description"
043.        }
044.    }, {
045.        "field": "modifiers",
046.        "title": "Modifiers",
047.        "headerAttributes": {
048.            "class": "col-modifiers"
049.        },
050.        "attributes": {
051.            "class": "col-modifiers"
052.        }
053.    }, {
054.        "field": "units",
055.        "title": "Units",
056.        "headerAttributes": {
057.            "class": "col-units"
058.        },
059.        "attributes": {
060.            "class": "col-units"
061.        }
062.    }, {
063.        "field": "revenueCode",
064.        "title": "RC",
065.        "headerAttributes": {
066.            "class": "col-revenue-code"
067.        },
068.        "attributes": {
069.            "class": "col-revenue-code"
070.        }
071.    }, {
072.        "field": "episode",
073.        "title": "Episode",
074.        "headerAttributes": {
075.            "class": "col-episode"
076.        },
077.        "attributes": {
078.            "class": "col-episode"
079.        }
080.    }, {
081.        "field": "provider",
082.        "title": "Provider",
083.        "headerAttributes": {
084.            "class": "col-provider col-ddl"
085.        },
086.        "attributes": {
087.            "class": "col-provider col-ddl",
088.            "data-item-key": "provider",
089.            "data-value-key": "id"
090.        }
091.    }, {
092.        "field": "date",
093.        "title": "Date",
094.        "headerAttributes": {
095.            "class": "col-date"
096.        },
097.        "attributes": {
098.            "class": "col-date"
099.        },
100.        "format": "{0:d}"
101.    }, {
102.        "field": "charges",
103.        "title": "Charges",
104.        "headerAttributes": {
105.            "class": "col-charges"
106.        },
107.        "attributes": {
108.            "class": "col-charges"
109.        },
110.        "format": "{0:c}"
111.    }, {
112.        "title": "APC",
113.        "headerAttributes": {
114.            "class": "col-apc"
115.        },
116.        "attributes": {
117.            "class": "col-apc"
118.        }
119.    }, {
120.        "title": "APC Wt",
121.        "headerAttributes": {
122.            "class": "col-apc-weight"
123.        },
124.        "attributes": {
125.            "class": "col-apc-weight"
126.        }
127.    }, {
128.        "title": "SI",
129.        "headerAttributes": {
130.            "class": "col-si"
131.        },
132.        "attributes": {
133.            "class": "col-si"
134.        }
135.    }, {
136.        "title": "CA Flag",
137.        "headerAttributes": {
138.            "class": "col-ca-flag"
139.        },
140.        "attributes": {
141.            "class": "col-ca-flag"
142.        }
143.    }, {
144.        "title": "Percent",
145.        "headerAttributes": {
146.            "class": "col-percent"
147.        },
148.        "attributes": {
149.            "class": "col-percent"
150.        }
151.    }, {
152.        "title": "MCare Amt",
153.        "headerAttributes": {
154.            "class": "col-medicare-amount"
155.        },
156.        "attributes": {
157.            "class": "col-medicare-amount"
158.        },
159.        "format": "{0:c}"
160.    }, {
161.        "title": "Adj Coin",
162.        "headerAttributes": {
163.            "class": "col-adjusted-coin"
164.        },
165.        "attributes": {
166.            "class": "col-adjusted-coin"
167.        }
168.    }, {
169.        "title": "Out Amount",
170.        "headerAttributes": {
171.            "class": "col-out-amount"
172.        },
173.        "attributes": {
174.            "class": "col-out-amount"
175.        }
176.    }, {
177.        "title": "APC Pymt",
178.        "headerAttributes": {
179.            "class": "col-apc-payment"
180.        },
181.        "attributes": {
182.            "class": "col-apc-payment"
183.        }
184.    }],
185.    resizable: true,
186.    scrollable: true,
187.    navigatable: false,
188.    //selectable: 'cell',
189.    // events
190.    cancel: function() {
191.        console.warn('kendo: grid: cancel');
192.    },
193.    change: function(e) {
194.        console.warn('kendo: grid: change');
195.        varcellPos = _this.getCurrentCellPositionInfo();
196.    },
197.    columnHide: function() {
198.        console.warn('kendo: grid: columnHide');
199.    },
200.    columnMenuInit: function() {
201.        console.warn('kendo: grid: columnMenuInit');
202.    },
203.    columnReorder: function() {
204.        console.warn('kendo: grid: columnReorder');
205.    },
206.    columnResize: function() {
207.        console.warn('kendo: grid: columnResize');
208.    },
209.    columnShow: function() {
210.        console.warn('kendo: grid: columnShow');
211.    },
212.    edit: function(e) {
213.        console.warn('kendo: grid: edit');
214.        e.container.find('.k-dropdown-wrap').removeClass('k-state-disabled').addClass('k-state-default');
215.    },
216.    excelExport: function() {
217.        console.warn('kendo: grid: excelExport');
218.    },
219.    pdfExport: function() {
220.        console.warn('kendo: grid: pdfExport');
221.    },
222.    filterMenuInit: function() {
223.        console.warn('kendo: grid: filterMenuInit');
224.    },
225.    remove: function() {
226.        console.warn('kendo: grid: remove');
227.    },
228.    save: function(e) {
229.        console.warn('kendo: grid: save');
230.    },
231.    saveChanges: function() {
232.        console.warn('kendo: grid: saveChanges');
233.    },
234.    columnLock: function() {
235.        console.warn('kendo: grid: columnLock');
236.    },
237.    columnUnlock: function() {
238.        console.warn('kendo: grid: columnUnlock');
239.    },
240.    dataBinding: function(e) {
241.        console.warn('kendo: grid: dataBinding');
242.        varstart = 0;
243.        if(e.sender.dataSource.page() !== undefined && e.sender.dataSource.pageSize() !== undefined) {
244.            start = (e.sender.dataSource.page() - 1) * e.sender.dataSource.pageSize();
245.        }
246.        _.each(e.items, function(item) {
247.            item['rowNum'] = ++start;
248.        });
249.    },
250.    dataBound: function(e) {
251.        console.warn('kendo: grid: dataBound');
252.        _this.setupKeyListeners();
253.    }
254.};
255.this.grid = $('#grid').attr('id', this.id).kendoGrid(gridConfig).data('kendoGrid');
256.window['grid'+ this.id] = this.grid;
257.};

Help is appreciated


Viewing all articles
Browse latest Browse all 99250

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>