extjs4 - How do I enable only new rows in a Ext 4 Grid Panel? -
so have extjs 4 grid panel
has 2 columns.
column one combobox
custom renderer
ext.ux.comboboxrenderer = function(combo) { return function(value) { var idx = combo.store.find(combo.valuefield, value); var rec = combo.store.getat(idx); return (rec == null ? '<img src="/js/extjs4/resources/themes/images/default/grid/loading.gif" />' : rec.get(combo.displayfield) ); }; }
column two numeric column
{ allowblank: false, header: 'time', dataindex: 'tedpaidtime', align: 'right', field: { xtype: 'numberfield', allowblank: false, minvalue: 0, maxvalue: 100000 }, flex: 0.20, selectonfocus:true }
now, when load datastore
, want first column read only. easy if set readonly
flag.
however, have button adds new record store , want new record not have readonly flag.
so basically, once change column 1 , save, can not alter it. able alter new records before saved.
the business rules here require them delete old record if it's incorrect.
thanks.
i able solve myself.
basically, recorded combo on selectionchange
event. then, in focus
event, checked see if had required data key store. if not, assume new row , ran following:
focus: function(combo) { var cb = combo; if(newtedetailrecord) { if(newtedetailrecord.data["activitykey"] == "") { console.log("newtedetailrecord", newtedetailrecord); cb.seteditable(true); cb.setreadonly(false); cb.focus(); cb.selecttext(); } else { cb.setreadonly(true); } } },
Comments
Post a Comment