关于jsp动态关联组件的使用
jsp部分代码
<td style="text-align: right">所属地市</td>
<td class="td-label">
<nbean:xzqh id="SSDS" name="SSDS"
value="${datainfo.rows[0].SSDS}" level="3" orderBy="cast(PXM as int)" style="width: 60%"
onchange="queryStreet(this.value,$('#SSQX').get(0))"/>
</td>
<td style="text-align: right">所属区县</td>
<td class="td-label">
<nbean:xzqh id="SSQX" name="SSQX" value="${datainfo.rows[0].SSQX}" level="4"
orderBy="cast(PXM as int)" parentCode="${requestScope.SSDS}" style="width: 60%"
onchange="queryStreet(this.value,$('#SSJD').get(0))"/>
</td>
js部分代码
function queryStreet(value, target) {
debugger;
if (value.trim() != "") {
currentTarget = target;
$.post(ctx + '/pages/ydzfv3/zfgl/wshsl/ajax.jsp?method=gainStreetByXzq', {qXzq: value}, function (data) {
data = data.trim();
var result = parseArray(data);
applyOptions(result, target);
})
} else {
currentTarget = target;
clearSelector(currentTarget);
var sOption = document.createElement("OPTION");
currentTarget.options.add(sOption);
sOption.value = "";
sOption.innerText = "---请选择---";
return;
}
}
/**
*** 解析数据
*/
function parseArray(resStr){
var res = new Array();
if((resStr === null) || (resStr === 'null') || (resStr === "")){ return null;}
var rows = resStr.split("##");
if((rows !== null) && (rows.length !== undefined)){
for(var i=0;i<rows.length;i=i+1){
var item = rows[i];
res[res.length] = item;
}
}else{
return null;
}
return res;
}**
/**
* 往下拉列表中添加数据
*/
function applyOptions(res,target){
try{
if(target != null){
currentTarget = target;
}
clearSelector(currentTarget);
if((res === null) || (res.length === undefined)){
var sOption = document.createElement("OPTION");
currentTarget.options.add(sOption);
sOption.value = "";
sOption.innerText = "---请选择---";
return;
}else{
var sOption = document.createElement("OPTION");
currentTarget.options.add(sOption);
sOption.value = "";
sOption.innerText = "---请选择---";
for(var i=0;i<res.length;i=i+1){
var oOption = document.createElement("OPTION");
currentTarget.options.add(oOption);
var item = res[i];
var cells = item.split("@@");
oOption.value = cells[1];
oOption.innerText = cells[0];
}
}
}catch(exception){}
}
/**
* 清空下拉列表中的值
*/
function clearSelector(selector){
var length = selector.options.length;
for(var i=0;i<length;i=i+1){
selector.options.remove(0);
}
}
java部分代码
public String gainStreetByXzq(String qXzq) {
JdbcDAO dao = new JdbcDAO();
Connection con = dao.getConnection();
StringBuffer xzqh = new StringBuffer();
try {
con.setAutoCommit(false);
StringBuffer sql = new StringBuffer();
sql.append(" SELECT * FROM T_COMN_XZQHDM WHERE FDM=? AND XZQH<>'市辖区' ");
QueryHelper query1 = new QueryHelper(sql.toString());
query1.addParameter(Types.VARCHAR, qXzq);
List<DynaBean> list = dao.getListValue(con, query1);
con.commit();
String XZQH = "";
String XZQHDM = "";
int size = list.size();
for (int i = 0; i < size; i++) {
XZQH = BeanUtils.getString(list.get(i), "XZQH");
XZQHDM = BeanUtils.getString(list.get(i), "XZQHDM");
if (i < (size - 1)) {
xzqh.append(XZQH);
xzqh.append("@@");
xzqh.append(XZQHDM);
xzqh.append("##");
}
if (i == (size - 1)) {
xzqh.append(XZQH);
xzqh.append("@@");
xzqh.append(XZQHDM);
}
}
} catch (Exception e) {
JdbcDAO.rollback(con);
e.printStackTrace();
}
return xzqh.toString();
}