ext EditorGridPanel

我设置了一列为可编辑
var colM = new Ext.grid.ColumnModel( [ new Ext.grid.RowNumberer(), sm,
{header :'商品名称',dataIndex:'productName'}
,{header :'颜色',dataIndex:'pcolor'}
,{header :'尺码',dataIndex:'psize'}
,{header :'录入方式',dataIndex:'createBarcodeType',renderer:showCreateBarcodeType}
,{header :'条码',dataIndex:'barCode',editor : new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank : false}))}
]);
这个条码我想根据录入方式 0为可编辑,1为不可编辑的单元格,请问应该怎样做才可以,谢谢!

麻烦下次问问题的话,把代码提供全些

[code="java"] <br> Ext.onReady(function(){<br> var sm = new Ext.grid.RowSelectionModel({singleSelect : true});<br> //grid列<br> var cm = new Ext.grid.ColumnModel( [ new Ext.grid.RowNumberer(), sm, <br> {header :&#39;商品名称&#39;,dataIndex:&#39;productName&#39;} <br> ,{header :&#39;颜色&#39;,dataIndex:&#39;pcolor&#39;} <br> ,{header :&#39;尺码&#39;,dataIndex:&#39;psize&#39;} <br> ,{header :&#39;录入方式&#39;,dataIndex:&#39;createBarcodeType&#39;} <br> ,{header :&#39;条码&#39;,dataIndex:&#39;barCode&#39;,editor : new Ext.grid.GridEditor(new Ext.form.TextField({allowBlank : false}))} <br> ]); <br> //测试数据<br> var data = [<br> [&#39;Coco&#39;,&#39;red&#39;,&#39;120&#39;,&#39;1&#39;,&#39;12321323&#39;],<br> [&#39;dfkls&#39;,&#39;blue&#39;,&#39;120&#39;,&#39;0&#39;,&#39;12321323&#39;],<br> [&#39;ce3dfe&#39;,&#39;red&#39;,&#39;120&#39;,&#39;1&#39;,&#39;12321323&#39;],<br> [&#39;Cosdfco&#39;,&#39;yellow&#39;,&#39;120&#39;,&#39;1&#39;,&#39;12321323&#39;],<br> [&#39;swr&#39;,&#39;red&#39;,&#39;120&#39;,&#39;0&#39;,&#39;12321323&#39;]<br> ];<br> //数据存储器<br> var ds = new Ext.data.Store({<br> proxy:new Ext.data.MemoryProxy(data),<br> reader:new Ext.data.ArrayReader({},[<br> {name:&#39;productName&#39;},<br> {name:&#39;pcolor&#39;},<br> {name:&#39;psize&#39;},<br> {name:&#39;createBarcodeType&#39;},<br> {name:&#39;barCode&#39;}<br> ])<br> });</p> <pre><code> var grid=new Ext.grid.EditorGridPanel({ title:&#39;测试列表&#39;, //el:&#39;grid&#39;, renderTo:&#39;grid&#39;, width:800, height:300, autoScroll:true, store:ds, cm:cm, sm:sm, listeners:{ &#39;beforeedit&#39;:function(o){ var createBarcodeType = o.record.get(&#39;createBarcodeType&#39;); if(createBarcodeType == &#39;1&#39;) return true; else return false; } } }); ds.load(); }); &lt;/script&gt;[/code] </code></pre> <p>里面核心的思路就是在EditorGridPanel上加beforeedit监听事件<br> [code=&quot;java&quot;]<br> &#39;beforeedit&#39;:function(o){<br> var createBarcodeType = o.record.get(&#39;createBarcodeType&#39;);<br> if(createBarcodeType == &#39;1&#39;)<br> return true;<br> else<br> return false;<br> }<br> [/code]</p> <p>[quote]<br> [b]beforeedit[/b] : ( Object e ) <br> Fires before cell editing is triggered. The edit event object has the following properties </p> <p>grid - This grid <br> record - The record being edited <br> field - The field name being edited <br> value - The value for the field being edited. <br> row - The grid row index <br> column - The grid column index <br> cancel - Set this to true to cancel the edit or return false from your handler<br> [/quote]</p>

添加renderer事件处理,获取同行的录入方式,然后再设置editor