Я знаю, что есть такие вопросы, как мои, но детали важны в моем случае, и детали этого вопроса отличаются от того, который уже задан. однако проблема в том, что я пытаюсь создать новое окно с extjs, начиная с уже выполненной сетки. Это новое окно должно содержать сетку с al ссылки на элемент, выбранный из предыдущей сетки. Итак, это мое решение, я поместил вызов ajax внутри первой сетки. Я сделал столбец, чтобы содержать изображение, которое нужно кликнуть, чтобы перейти ко второй сетке. Но это не работает. Когда я нажимаю на изображение, он ничего не показывает?Как создать новое окно в ajax в extjs
Неправильно ли я делаю вызов 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");
}
});
}
}]
}
],
Какая у вас отладка? В каких точках код попал? –
Проблема была в первую очередь этой строки: 'buyer_member_id = grid.getSelectionModel.getSelection() [1]', но я нашел righ ответ на эту первую проблему и о том, как создать окна, у меня все еще есть проблема, но не одна упомянутая в вопросе. Я вставляю козу в ответ. Агнесе – softwareplay