我知道还有像我这样的问题,但细节对我来说很重要,而且这个问题的细节与已经提出的问题不同。但是问题是我正在尝试使用 extjs 构建一个新窗口,从已经完成的网格开始。这个新窗口应该包含一个网格,其中包含对前一个网格中所选元素的所有引用。所以这是我的解决方案,我在第一个网格内放置了一个 ajax 调用。我制作了一个列来包含要单击以进入第二个网格的图像。但它不起作用。当我点击图片时它什么都不显示?
我做 ajax 调用错了吗?我是否错误地将 json 传递到页面以存储应该在新窗口中的网格?任何想法?这是我的网格的代码:
var grid = Ext.create('Ext.grid.Panel', {
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);
buyer_member_id = grid.getSelectionModel.getSelection()[1]
Ext.Ajax.defaultHeaders = {
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
};
Ext.Ajax.request({
method : "GET",
url: '/mygrid/',
params:{
buyer_member_id: buyer_member_id,
},
success : function(response) {
var obj = response;
try {
obj = Ext.decode(response.responseText);
} catch (error) {}
if (obj) {
Ext.create('Ext.window.Window', {
title: 'Hello',
height: 200,
width: 400,
layout: 'fit',
items: { // Let's put an empty grid in just to illustrate fit layout
xtype: 'grid',
border: false,
columns: [
{
text : 'id',
flex : 1,
sortable : true,
dataIndex: 'id'
},
{
text : 'name',
width : 300,
sortable : true,
dataIndex: 'name'
}], // One header just for show. There's no data,
store: new Ext.data.JsonStore({
// store configs
storeId: 'myStore',
proxy: {
type: 'ajax',
url: '/admants/',
reader: {
type: 'json',
}
},})
}}).show();
} else {
alert("Invalid response")
}
},
failure : function(response) {
alert("Data request failed");
}
});
}
}]
}
],