我是 ExtJS 的新手。
我在同一页面上有两个网格。第一个网格有 3 列。第二只。问题是当第二个被渲染时,它会覆盖第一个网格的属性。
例如,当我尝试在第一个网格中编辑行时,它会从第二个网格中获取行的宽度。
变量 $booleanArray = [ ['拒绝','拒绝'], ['允许','允许'] ]; var myPageSize = 10; Ext.Loader.setConfig({ enabled: true }); 分机要求([ 'Ext.grid.*', 'Ext.data.*', 'Ext.util.*', 'Ext.state.*' ]); Ext.onReady(函数(){ Ext.define('CharacteristicModel', { 扩展:'Ext.data.Model', 字段:[{name:'name'},{name:'value'},{name:'order'}], 验证:[ { 类型:'长度', 字段:'名称', 分钟:1 } ] }); var featuresStore = new Ext.data.Store({ 代理人 : { 模型:'CharacteristicModel', 类型:“休息”, 接口:{ 阅读:admin_path + '/getCharacteristics/1/', 创建:admin_path + '/saveCharacteristics/1/', 更新:admin_path + '/saveCharacteristics/1/', 销毁:admin_path + '/destroyCharacteristic/1/' }, 读者:{ 类型:'json', 根:'数据', 总属性:'total_count' }, 作者:{ 类型:'json', 根:'数据' }, 缓冲:真 }, 听众:{ 阅读:功能(响应){ }, 加载:函数(存储){ }, 写:函数(存储,操作){ 存储.load(); } }, 页面大小:我的页面大小, 自动加载:{开始:0,限制:myPageSize}, 自动同步:真 }); var rowEditing = Ext.create('Ext.grid.plugin.RowEditing'); var featuresGrid = new Ext.grid.GridPanel({ id : '特征网格', renderTo : 'characteristics_grid_div_1', 商店:特性商店, 宽度:480, 有状态的:真, stateId : 'characteristicsGrid', 标题:'网格“1”', iconCls : '图标用户', 听众:{ itemdblclick: 函数 (dv, row, item, index, e) { dv.refresh(); dv.getGridColumns()[0].setEditor({ 禁用:真, 可编辑:假 }); if (row.data.id == 6 || row.data.id == 7) { dv.getGridColumns()[1].setEditor({ xtype:'组合', 存储:新的 Ext.data.ArrayStore({ 字段:['abbr','action'], 数据:$布尔数组 }), displayField : '动作', 值字段:'缩写', 模式:'本地', 预输入:假, triggerAction: '全部', 惰性渲染:是的, emptyText : '选择动作' }); } 否则 if (row.data.id == 8 || row.data.id == 11) { dv.getGridColumns()[1].setEditor({ 禁用:真, 可编辑:假 }); } 别的 { dv.getGridColumns()[1].setEditor({ xtype:'文本字段' }); } } }, 列 : [ { id : '名字', text : '账户特征', 可排序:假, 宽度:340, 固定:真的, 数据索引:'名称' }, { id : '价值', 文本:'值', 可排序:假, 数据索引:'值', 宽度:70, 固定:真的, 编辑:{ xtype:'文本字段' }, 渲染器:函数(值,字段){ if (field.record.data.id == 6 || field.record.data.id == 7) { if ($booleanArray[0][0] != value) { 值 = $booleanArray[1][1]; } 别的 { 值 = $booleanArray[0][1]; } } 返回值; } }, { id : '订单', 文本:'订单', 可排序:假, 数据索引:'订单', 宽度:70, 固定:真的, 编辑:{ xtype:'文本字段' }, 渲染器:函数(值,字段){ 返回值; } } ], bbar : Ext.create('Ext.PagingToolbar', { 商店:特性商店, 显示信息:真, 页面大小:我的页面大小, displayMsg : '显示 {0} - {1} из {2}', emptyMsg : "0 行" }), 停靠项目:[ { xtype: '工具栏', 项目: [ { 文本:'添加', iconCls: '图标添加', 处理程序:函数(){ var grid_colums = rowEditing.cmp.getSelectionModel().view.getGridColumns(); grid_colums[0].setEditor({ xtype:'组合', 存储:新的 Ext.data.ArrayStore({ 字段:['id','name'], 数据:$特征 }), 显示字段:'名称', 值字段:'id', 模式:'本地', 预输入:假, triggerAction: '全部', 惰性渲染:是的, emptyText : '选择动作' }); grid_colums[1].setEditor({ xtype:'文本字段' }); // 空记录 //characteristicsStore.autoSync = false; featuresStore.insert(0, new CharacteristicModel()); rowEditing.startEdit(0, 0); //characteristicsStore.autoSync = true; } }, '-', { itemId : '删除', 文本:'删除', iconCls : '图标删除', 禁用:真, 处理程序:函数(){ var selection = featuresGrid.getView().getSelectionModel().getSelection()[0]; 如果(选择){ 特征Store.remove(选择); } } } ] } ], 插件:[行编辑] }); featuresGrid.getSelectionModel().on('selectionchange', function (selModel, selections) { featuresGrid.down('#delete').setDisabled(selections.length === 0); }); }); Ext.onReady(函数(){ Ext.define('AdvantagesModel', { 扩展:'Ext.data.Model', 字段:[ {名称:'名称'} ] }); // 设置状态提供者,所有状态信息将被保存到 cookie //Ext.state.Manager.setProvider(Ext.create('Ext.state.CookieProvider')); var 优势存储 = 新的 Ext.data.Store({ idProperty: 'AdvantagesModel', 代理人 : { 模型:'AdvantagesModel', 类型:“休息”, 接口:{ 阅读:admin_path + '/getAdvantages/1/', 创建:admin_path + '/saveAdvantages/1/', 销毁:admin_path + '/destroyAdvantages/1/' }, 读者:{ 类型:'json', 根:'数据', 总属性:'总计数' }, 作者:{ 类型:'json', 根:'数据' }, 缓冲:真 }, 听众:{ 阅读:功能(响应){ }, 加载:函数(存储){ }, 写:函数(存储,操作){ 存储.load(); } }, 页面大小:我的页面大小, 自动加载:{开始:0,限制:myPageSize}, 自动同步:真 }); var rowEditing = Ext.create('Ext.grid.plugin.RowEditing'); var 优势Grid = new Ext.grid.GridPanel({ id : 'advantagesGrid', renderTo : 'advantages_grid_div_1', 商店:优势商店, 宽度:482, 身高:355, 有状态的:真, stateId : 'advantagesGrid', 标题:'网格 2', iconCls : '图标用户', 听众:{ beforeedit:功能(dv,行,项目){ //advantagesGrid.getView().refresh(); 如果(row.record.raw) { 返回假; } } }, 列 : [ { id : '名字', text : '优势', 可排序:假, 数据索引:'名称', 宽度:480 } ], bbar : Ext.create('Ext.PagingToolbar', { 商店:优势商店, 显示信息:真, 页面大小:我的页面大小, displayMsg : '显示 {0} - {1} из {2}', emptyMsg : "0 行" }), 停靠项目:[ { xtype: '工具栏', 项目: [ { 文本:'添加', iconCls: '图标添加', 处理程序:函数(){ var grid_colums = rowEditing.cmp.getSelectionModel().view.getGridColumns(); grid_colums[0].setEditor({ xtype:'组合', 存储:新的 Ext.data.ArrayStore({ 字段:['id','name'], 数据:$优势 }), 显示字段:'名称', 值字段:'id', 模式:'本地', 预输入:假, triggerAction: '全部', 惰性渲染:是的, emptyText : '选择动作' }); // 空记录 优势Store.autoSync = false; 优势商店.插入(0,新优势模型()); rowEditing.startEdit(0, 0); 优点Store.autoSync = true; } }, '-', { itemId : '删除', 文本:'删除', iconCls : '图标删除', 禁用:真, 处理程序:函数(){ 变种选择 = 优势Grid.getView().getSelectionModel().getSelection()[0]; 如果(选择){ 优点Store.remove(selection); } } } ] } ], 插件:[行编辑] }); 优势Grid.getSelectionModel().on('selectionchange', function (selModel, selections) { 优势Grid.down('#delete').setDisabled(selections.length === 0); }); });