我想做的操作并不容易。我有第一个网格(或表格)和第二个网格,单击第一个表格的每一行中存在的单元格生成。它采用第一个表的参数并显示生成表的 json 的一些其他内容。
第二个表包含在第一个表的列中,它是由 ajax 调用生成的,并且:
Ext.create('Ext.window.Window' etc. etc.
问题是我想取第一个表的行名并将其用作第二个表的名称,该表位于第一个表内。我找到了一些有用的建议(1、2),但“当前”表的工作,而不是我的具体情况。任何人都可以帮忙吗?
我使用的代码如下,但阅读时间很长,所以我怀疑它是否有用。
// create the Grid
var grid = Ext.create('Ext.ux.LiveSearchGridPanel', {
store: store1,
stateful: true,
collapsible: true,
multiSelect: true,
stateId: 'stateGrid',
columns: [
{
text : 'id',
flex : 1,
sortable : true,
dataIndex: 'id'
},
{
text : 'buyer_member_id',
width : 75,
sortable : true,
dataIndex: 'buyer_member_id'
},
{
text : 'Client Name',
width : 200,
sortable : true,
dataIndex: 'name'
},
{
xtype : 'actioncolumn',
width : '5%',
sortable : false,
items : [{
icon : '../static/accept.gif',
tooltip : 'See Admants',
handler : function(grid, rowIndex, colIndex){
var row = grid.getStore().getAt(rowIndex);
var buyer_member_id = row.data.buyer_member_id;
Ext.Ajax.defaultHeaders = {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
};
Ext.Ajax.request({
method : "GET",
url: '/admants/?buyer_member_id='+ buyer_member_id,
success : function(response) {
var obj = response;
try {
obj = Ext.decode(response.responseText);
} catch (error) {alert("Errore nella decodifica del file json");}
if (obj) {
Ext.define('Admants', {
extend: 'Ext.data.Model',
fields: [
{name: 'id', type: 'int', convert: null, defaultValue:undefined},
{name: 'name', type: 'string', convert:null, defaultValue:undefined},
{name: 'group', type: 'string', convert:null, defaultValue:undefined}
],
idProperty: 'id'
});
var groupingFeature = Ext.create('Ext.grid.feature.Grouping',{
groupHeaderTpl: 'Group: {name} ({rows.length} Item{[values.rows.length > 1 ? "s" : ""]})'
});
var Admantstore = Ext.create('Ext.data.Store', {
autoLoad: true,
storeId: 'Admants',
sorters: ['id', 'name','group'],
groupField: 'group',
fields: ['id','name','group'],
data : obj,
model: 'Admants',
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'admants'
}
}
});
Ext.create('Ext.window.Window', {
title: 'Admants', //this line has to be changed
height: 200,
width: 400,
layout: 'fit',
items: {
xtype: 'grid',
border: false,
store: Admantstore,
features: [groupingFeature],
columns: [
{
text : 'id',
flex : 1,
sortable : true,
dataIndex: 'id'
},
{
text : 'name',
width : 300,
sortable : true,
dataIndex: 'name'
}],
}}).show();
} else {
alert("Invalid response");
}
},
failure : function(response) {
alert("Data request failed");
}
});
}
}]
}
],
height: 350,
width: 600,
title: 'Member Data Sharing',
renderTo: 'grid-example1',
viewConfig: {
stripeRows: true,
enableTextSelection: true
}
});
});