Extjs 选择子网格中的行将选择父网格中具有相同行索引的行
我已经在Rowexpander插件中实现了嵌套网格。现在的问题是,当我选择子网格的任何第n行时,父网格的第n行也会被选中。我认为这是因为两者都有相同的行索引。即使我在子网格行上鼠标悬停,也会同时为父网格显示相同的鼠标悬停效果 下面是Rowexpander的代码Extjs 选择子网格中的行将选择父网格中具有相同行索引的行,extjs,Extjs,我已经在Rowexpander插件中实现了嵌套网格。现在的问题是,当我选择子网格的任何第n行时,父网格的第n行也会被选中。我认为这是因为两者都有相同的行索引。即使我在子网格行上鼠标悬停,也会同时为父网格显示相同的鼠标悬停效果 下面是Rowexpander的代码 var expander = new Ext.ux.grid.RowExpander({ expandOnDblClick : false, tpl : new Ext.Template
var expander = new Ext.ux.grid.RowExpander({
expandOnDblClick : false,
tpl : new Ext.Template('<div id="NestedGridRow-{id}"></div>'),
renderer: function(v, p, record) {
if (record.get('cmaStatus') == 'G') {
p.cellAttr = 'rowspan="2"';
return '<div class="x-grid3-row-expander"></div>';
}
},
});
expander.on('expand', expandedRow);
function expandedRow(obj, record, body, rowIndex){
//absId parameter for the http request to get the absence details.
//Use Id to give each grid a unique identifier. The Id is used in the row expander tpl.
//and in the grid.render("ID") method.
var row = "NestedGridRow-" + record.get("id");
var id2 = "mygrid-" +record.get("id");
sapid_para = record.get('sapid');
//Create the nested grid.
var gridX = new Ext.grid.GridPanel({
id:'nestedGrid',
store: storenested,
//stripeRows: true,
columns: [
{
header : "CMA Date",
width : 120,
sortable : true,
dataIndex : 'cmaDate',
},
{
header : "Source Model",
width : 120,
sortable : true,
dataIndex : 'sourceModel',
},
{
header : "Remarks",
width : 390,
sortable : true,
dataIndex : 'remarks',
}],
height: 120,
id: id2,
plugins : [editor],
renderTo: row,
stripeRows:true,
listeners: {
render: function(gridX) {
gridX.getView().el.select('.x-grid3-header').setStyle('display', 'none');
},
rowclick : function(grid,rowIndex,e) {
alert(rowIndex);
}
},
});
gridX.render(row);
//Ext.getCmp('grid_lineage').getStore().load({params:{start:0, limit:10}});
storenested.load({params:{start:0, limit:10}});
var expander=new Ext.ux.grid.RowExpander({
expandOnDblClick:false,
tpl:新的外部模板(“”),
渲染器:函数(v、p、记录){
if(record.get('cmaStatus')=='G'){
p、 cellAttr='行span=“2”';
返回“”;
}
},
});
expander.on('expand',expandedRow);
函数expandedRow(对象、记录、正文、行索引){
//获取缺勤详细信息的http请求的absId参数。
//使用Id为每个网格提供一个唯一标识符。该Id用于行扩展程序tpl。
//在grid.render(“ID”)方法中。
var row=“NestedGridRow-”+record.get(“id”);
var id2=“mygrid-”+record.get(“id”);
sapid_para=record.get('sapid');
//创建嵌套网格。
var gridX=new Ext.grid.GridPanel({
id:'nestedGrid',
store:storenested,
//是的,
栏目:[
{
标题:“CMA日期”,
宽度:120,
可排序:是的,
数据索引:“cmaDate”,
},
{
标题:“源模型”,
宽度:120,
可排序:是的,
dataIndex:'sourceModel',
},
{
标题:“备注”,
宽度:390,
可排序:是的,
数据索引:“备注”,
}],
身高:120,
id:id2,
插件:[编辑器],
伦德托:罗,
是的,
听众:{
渲染:函数(gridX){
gridX.getView().el.select('.x-grid3-header').setStyle('display','none');
},
行单击:函数(网格、行索引、e){
警报(行索引);
}
},
});
gridX.render(行);
//Ext.getCmp('grid_沿袭').getStore().load({params:{start:0,limit:10}});
load({params:{start:0,limit:10}});
请帮助我也遇到了同样的问题。您需要获取嵌套网格的句柄,并将其称为:
gridX.getEl().swallowEvent(['mouseover', 'mousedown', 'click', 'dblclick', 'onRowFocus']);
我和你遇到了同样的问题!你有没有发现解决方法?