私がやりたい操作は簡単ではありません。最初のグリッド(またはテーブル)と、最初のテーブルのすべての行にあるセルをクリックして生成された2番目のグリッドがあります。最初のテーブルのパラメーターを取得し、テーブルを生成する json の他のコンテンツを表示します。
2 番目のテーブルは最初のテーブルの列に含まれており、ajax 呼び出しによって作成されます。
Ext.create('Ext.window.Window' etc. etc.
問題は、最初のテーブルの行の名前を取得して、最初のテーブルの中にある2番目のテーブルの名前として使用したいということです。私はいくつかの有用なアドバイス ( 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
}
});
});