extjs - Ordering rownumberer after adding or deleting from the store ExtJS4.1 -
i have extjs store produces grid. in first column of grid have rownumberer xtype generate serial number.
in grid can add(from other grid) or delete records through action.while adding copies row number other grid. want rownumberer sorted after every addition or removal.please help.
items: [ { xtype: 'grid', id: 'allsurveygrid', store: alludfstore, border: false, width: 600, height: 250, layout: 'fit', columns: [{ xtype: 'rownumberer' }, { header: 'date', sortable: false, dataindex: 'createddt', flex: 0.3 }, { header: 'question name', sortable: false, dataindex: 'questiontext', flex: 1 } ], selmodel: { mode: 'multi' }, }, { xtype: 'tbspacer', height: 10 }, { xtype: 'container', header: false, style: { left: '465px' }, layout: { type: 'hbox' }, items: [{ xtype: 'tbspacer', width: 250 }, { xtype: 'button', text: '▼', id: 'selectqn', //flex: 1, height: 40, width: 40, handler: function () { //elison : delegate controller once function ready. var allsurveygrid = ext.getcmp("allsurveygrid"); var selmodels = allsurveygrid.getview().getselectionmodel().getselection(); var selsurveygrid = ext.getcmp("addsurveygrid"); var selectedsurveystore = selsurveygrid.getstore(); var countofquestion = 0; if (selmodels.length == 0) { ext.msg.alert(' ' + 'error', "select atleast 1 question add."); return; } (var c = 0; c < selectedsurveystore.data.length; c++) { item = selectedsurveystore.data.items[c].data; if (item.qname !== null && item.qname !== "") { countofquestion = countofquestion + 1; } else { selectedsurveystore.remove(selectedsurveystore.getat(c)); } } var finalcount = countofquestion + (selmodels.length); if (finalcount >= 16) { ext.msg.alert(' ' + 'error', "more 15 udf not allowed"); return; } else { // selectedsurveystore.add(selmodels); /* for(var x=0;x<selmodels.length;x++){ selmodels.getat[0].set('questionid',selectedsurveystore.data.length+1); }*/ selectedsurveystore.loaddata(selmodels, true); selsurveygrid.getview().refresh(); } } }, { xtype: 'tbspacer', width: 10 }, { xtype: 'button', text: '▲', id: 'unselectqn', height: 40, width: 40, style: { borderradius: 0 }, //flex: 1, handler: function () { var selsurveygrid = ext.getcmp("addsurveygrid"); var selmodels = selsurveygrid.getview().getselectionmodel().getselection(); var selectedsurveystore = selsurveygrid.getstore(); selectedsurveystore.remove(selmodels); }, }, { xtype: 'tbspacer', width: 250 } ] }, { xtype: 'tbspacer', height: 10 }, { xtype: 'grid', id: 'addsurveygrid', store: addudfstore, border: false, width: 600, height: 250, layout: 'fit', columns: [{ xtype: 'rownumberer' }, { header: 'date', sortable: false, dataindex: 'createddt', flex: 0.3 }, { header: 'question name', sortable: false, dataindex: 'questiontext', flex: 1 } ], selmodel: { mode: 'multi' }, viewconfig: { plugins: { ptype: 'gridviewdragdrop' } } } ]
try calling
grid.getview().refresh();
right after add or remove item grid.
Comments
Post a Comment