如何在 ExtJs 中用新的 ajax 结果替换 div 的内容?
how to replace content of div with new ajax result in ExtJs?
我是 ExtJs 的新手,我想用新的 Ajax 请求结果覆盖 Div id "infraTab"
的 html 内容。
将不胜感激。
提前致谢。
以下是我目前所做的代码。
Ext.define('testview', {
layout : {
type: 'border',
padding: 5
},
extend : 'Ext.Panel',
alias : 'widget.infraTab',
id : 'infraTab',
margin : '10 10 10 10',
border : true,
items : Ext.create('Ext.view.View', {
store: store,
tpl:resultTemplate,
itemSelector: 'div.list-item',
listeners: {
itemclick: function(view, record, item, index, e, eOpts) {
getsublevels("abc");
}
}
})
});
上面的代码是显示数据,新的ajax调用函数是
var getsublevels = function(value){
var sublvlStore = Ext.create('Ext.data.Store', {
model : 'LevelModel',
autoLoad : true,
proxy : {
type : 'ajax',
url : 'Url',
method :'GET',
extraParams: {
test: test
},
reader : {
type : 'json',
root : 'data',
totalProperty : 'total',
successProperty: 'success'
}
}
});
sublvlStore.load();
Ext.define('testview', {
layout : {
type: 'border',
padding: 5
},
extend : 'Ext.Panel',
alias : 'widget.infraTab',
id : 'infraTab',
margin : '10 10 10 10',
border : true,
renderTo: "infraTab",
items : Ext.create('Ext.view.View', {
store: sublvlStore,
tpl:resultTemplate,
itemSelector: 'div.list-item',
listeners: {
itemclick: function(view, record, item, index, e, eOpts) {
getsublevels(record.get('value'));
}
}
})
});
};
我尝试了 renderTo
但没有成功。
您不需要为此替换页面的全部内容,您拥有的列表类型视图已绑定到商店中的数据。您可以更新/更改/重新加载或完全替换商店中的数据,结果将反映在屏幕上。
在你的顶级代码块中尝试这样的事情
items : Ext.create('Ext.view.View', {
store: store,
tpl:resultTemplate,
itemSelector: 'div.list-item',
listeners: {
itemclick: function(view, record, item, index, e, eOpts) {
store.reload({
params: {
parentValue: record.get('value')
},
url: '/new_url.php'
});
}
}
})
在上面的示例中,当您单击列表中的一个项目时,它会向服务器发送一个 ajax 请求,其中包含一个包含父列表项值的参数,您的后端服务应响应该值与第一个请求不同的数据。
我是 ExtJs 的新手,我想用新的 Ajax 请求结果覆盖 Div id "infraTab"
的 html 内容。
将不胜感激。 提前致谢。 以下是我目前所做的代码。
Ext.define('testview', {
layout : {
type: 'border',
padding: 5
},
extend : 'Ext.Panel',
alias : 'widget.infraTab',
id : 'infraTab',
margin : '10 10 10 10',
border : true,
items : Ext.create('Ext.view.View', {
store: store,
tpl:resultTemplate,
itemSelector: 'div.list-item',
listeners: {
itemclick: function(view, record, item, index, e, eOpts) {
getsublevels("abc");
}
}
})
});
上面的代码是显示数据,新的ajax调用函数是
var getsublevels = function(value){
var sublvlStore = Ext.create('Ext.data.Store', {
model : 'LevelModel',
autoLoad : true,
proxy : {
type : 'ajax',
url : 'Url',
method :'GET',
extraParams: {
test: test
},
reader : {
type : 'json',
root : 'data',
totalProperty : 'total',
successProperty: 'success'
}
}
});
sublvlStore.load();
Ext.define('testview', {
layout : {
type: 'border',
padding: 5
},
extend : 'Ext.Panel',
alias : 'widget.infraTab',
id : 'infraTab',
margin : '10 10 10 10',
border : true,
renderTo: "infraTab",
items : Ext.create('Ext.view.View', {
store: sublvlStore,
tpl:resultTemplate,
itemSelector: 'div.list-item',
listeners: {
itemclick: function(view, record, item, index, e, eOpts) {
getsublevels(record.get('value'));
}
}
})
});
};
我尝试了 renderTo
但没有成功。
您不需要为此替换页面的全部内容,您拥有的列表类型视图已绑定到商店中的数据。您可以更新/更改/重新加载或完全替换商店中的数据,结果将反映在屏幕上。
在你的顶级代码块中尝试这样的事情
items : Ext.create('Ext.view.View', {
store: store,
tpl:resultTemplate,
itemSelector: 'div.list-item',
listeners: {
itemclick: function(view, record, item, index, e, eOpts) {
store.reload({
params: {
parentValue: record.get('value')
},
url: '/new_url.php'
});
}
}
})
在上面的示例中,当您单击列表中的一个项目时,它会向服务器发送一个 ajax 请求,其中包含一个包含父列表项值的参数,您的后端服务应响应该值与第一个请求不同的数据。