//为站点添加onchange事件
Ext.getCmp('_s_combobox_peSite_siteName').on('change',function(e,id){
getList(id ,'/entity/teaching/electiveManage_ajaxGetTraining.action?siteId='+id , '_s_combobox_peTraining_trainingName');
});
//为培训添加onchange事件
Ext.getCmp('_s_combobox_peTraining_trainingName').on('change',function(e,id){
getList(id ,'/entity/teaching/electiveManage_ajaxGetCourse.action?trainId='+id , '_s_combobox_peTchCourse_courseName');
});
//为站点添加onfocus事件,清除培训、课程下拉框中的值
Ext.getCmp('_s_combobox_peSite_siteName').on('focus',function(e,id){
_s_combobox_peTraining_trainingName.clearValue();
_s_combobox_peTchCourse_courseName.clearValue();
});
//为培训添加onfocus事件,清除课程下拉框中的值
Ext.getCmp('_s_combobox_peTraining_trainingName').on('focus',function(e,id){
Ext.getCmp('_s_combobox_peTchCourse_courseName').clearValue();
});
function getList(id,url,target){
Ext.Ajax.request({
url:url,
method:'GET',
disableCaching:true,
callback:function(option,success,response){
if(success){
var recordsData = eval(response.responseText);
if(target=='_s_combobox_peTraining_trainingName'){
_s_combobox_peTraining_trainingName.store.removeAll();
_s_combobox_peTchCourse_courseName.store.removeAll();
_s_combobox_peTraining_trainingName.store.loadData(recordsData);
}else if(target='_s_combobox_peTchCourse_courseName'){
_s_combobox_peTchCourse_courseName.store.removeAll();
_s_combobox_peTchCourse_courseName.store.loadData(recordsData);
}
}
}
});
}

Action里面的方法

//站点 ----级联查询  课程
public String ajaxGetTraining(){
DetachedCriteria dc = DetachedCriteria.forClass(PeTraining.class);
dc.createCriteria("peSite", "peSite")
.add(Restrictions.eq("id", this.getSiteId()));
dc.addOrder(Order.asc("name"));
try {
trainList = this.getGeneralService().getList(dc);
} catch (EntityException e) {
e.printStackTrace();
}
StringBuffer temp =new StringBuffer();
temp.append("[");
for (int i = 0; i < trainList.size(); i++) {
temp.append("['");
temp.append(trainList.get(i).getId());
temp.append("','");
temp.append(trainList.get(i).getName());
temp.append("']");
if(i!=trainList.size()-1){
temp.append(",");
}
}
temp.append("]");
this.setAjaxResult(temp.toString());
return "ajaxcheck";
}
//站点 ----级联查询  培训
public String ajaxGetCourse(){
DetachedCriteria dc = DetachedCriteria.forClass(PrTrainingCourse.class);
dc.createCriteria("peTraining","peTraining")
.add(Restrictions.eq("id", this.getTrainId()));
dc.createCriteria("peTchCourse", "peTchCourse").addOrder(Order.desc("pubTime"));
try {
courseList = this.getGeneralService().getList(dc);
} catch (EntityException e) {
e.printStackTrace();
}
StringBuffer temp =new StringBuffer();
temp.append("[");
for (int i = 0; i < courseList.size(); i++) {
temp.append("['");
temp.append(courseList.get(i).getPeTchCourse().getId());
temp.append("','");
temp.append(courseList.get(i).getPeTchCourse().getName());
temp.append("']");
if(i!=courseList.size()-1){
temp.append(",");
}
}
temp.append("]");
this.setAjaxResult(temp.toString());
return "ajaxcheck";
}

struts.xml配置

<result name="ajaxcheck">/WEB-INF/template/entity/pub/ajaxcheck.jsp</result>

ajaxcheck.jsp内容

<%@ taglib prefix="s" uri="/WEB-INF/struts-tags.tld" %>
<% response.setHeader("expires", "0"); %>
<s:if test='ajaxResult!=null'><s:property value="ajaxResult" escape="false"/></s:if><s:else><s:property value="#request.ajaxResult" escape="false"/></s:else>