52,797
社区成员
发帖
与我相关
我的任务
分享
Ext.onReady(function(){
var provinceCombo = new Ext.form.ComboBox({
fieldLabel: "所在省",
renderTo : "slideIn",
width: 230,
mode: "remote",
valueField: "id",
triggerAction: "all",
displayField: "name",
hiddenName: "province",
name: "province",
pageSize : 34,
store: new Ext.data.Store({
start : 0,
limit : 34,
totalProperty : "totalProperty",
proxy: new Ext.data.HttpProxy({
url: "areaComplate.action"
}),
reader: new Ext.data.JsonReader({
id: "name",
root: "items"
},
[ "id", "provinceID", "name" ])
}),
listeners: {
select: function(combo, record, index) {
cityCombo.clearValue();
cityCombo.getStore().removeAll();
areaCombo.clearValue();
areaCombo.getStore().removeAll();
cityCombo.getStore().load({
params: {
fatherID : record.get("name")
}
});
}
}
});
var cityCombo = new Ext.form.ComboBox({
fieldLabel: "所在市",
renderTo : "slideIn",
width: 230,
mode: "remote",
valueField: "cityID",
triggerAction: "all",
displayField: "name",
hiddenName: "city",
name: "city",
pageSize : 34,
store: new Ext.data.Store({
start : 0,
limit : 34,
totalProperty : "totalProperty",
proxy: new Ext.data.HttpProxy({
url: "getCity.action"
}),
reader: new Ext.data.JsonReader(
{
id: "name",
root: "items"
},
[ "id", "name", "cityID", "fatherID" ]
)
}),
listeners: {
select: function(combo, record, index) {
areaCombo.clearValue();
areaCombo.getStore().removeAll();
areaCombo.getStore().load({
params: {
fatherID : record.get("name")
}
});
}
}
});
var areaCombo = new Ext.form.ComboBox({
fieldLabel: "所在区",
renderTo : "areaIn",
width: 230,
mode: "remote",
valueField: "id",
triggerAction: "all",
displayField: "name",
hiddenName: "area",
name: "area",
pageSize : 34,
store: new Ext.data.Store({
start : 0,
limit : 34,
totalProperty : "totalProperty",
proxy: new Ext.data.HttpProxy({
url: "getAred.action"
}),
reader: new Ext.data.JsonReader({
id: "name",
root: "items"
},[ "id", "name", "areaID", "fatherID"
]
)
})
});
})
{
layout: "form",
items: {
xtype: "combo",
fieldLabel: "所在省",
width: 130,
store: new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: ""
}),
reader: new Ext.data.JsonReader({
id: "Key",
root: "data"
},
[{
name: "Key"
},
{
name: "Value"
}]),
baseParams: {
action: "GetProvinces"
},
autoLoad: true
}),
mode: "local",
valueField: "Key",
triggerAction: "all",
readOnly: true,
displayField: "Value",
hiddenName: "ProvinceId",
name: "ProvinceId",
listeners: {
select: function(combo, record, index) {
win.dealStoreWin.get(0).form.findField("CityId").clearValue();
win.dealStoreWin.get(0).form.findField("CityId").getStore().load({
params: {
args: record.id
}
});
}
}
},
columnWidth: .5
}]
},
{
layout: "column",
items: [{
layout: "form",
items: {
xtype: "combo",
fieldLabel: "所在市",
width: 130,
store: new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: ""
}),
reader: new Ext.data.JsonReader({
id: "Key",
root: "data"
},
[{
name: "Key"
},
{
name: "Value"
}]),
baseParams: {
action: "GetCitiesByProvince"
}
}),
mode: "local",
valueField: "Key",
triggerAction: "all",
readOnly: true,
displayField: "Value",
hiddenName: "CityId",
name: "CityId",
listeners: {
select: function(combo, record, index) {
win.dealStoreWin.get(0).form.findField("CountyId").clearValue();
win.dealStoreWin.get(0).form.findField("CountyId").getStore().load({
params: {
args: record.id
}
});
}
}
},
columnWidth: .5
},
{
layout: "form",
items: {
xtype: "combo",
fieldLabel: "所在区",
width: 130,
store: new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url: ""
}),
reader: new Ext.data.JsonReader({
id: "Key",
root: "data"
},
[{
name: "Key"
},
{
name: "Value"
}]),
baseParams: {
action: "GetCountyByCity"
}
}),
mode: "local",
valueField: "Key",
triggerAction: "all",
readOnly: true,
displayField: "Value",
hiddenName: "CountyId",
name: "CountyId"
},
columnWidth: .5
}]
}
联动就是根据第一个的值,去查询第二个的结果。然后根据第一个和第二个的值去查询第三个的结果。基本思路都这样