两个下拉框的联动问题
在workshop的页面中建立两个联动的下拉框 并根据下拉框选择的内容来查询数据库
两个下拉框的数据均来自relate表 字段为(MAINBOARD_ID,MAINBOARD_NAME,PRODUCT_ID,PRODUCT_MODEL)其中id和name为一一对应 一个m id 对应 多个p id
本人用两个hashmap实现了下拉框的选择,请教如何用Javascript 让第一个下拉框的选择决定第二个的内容。
hashmap的代码
以下是在ROWSET控件中的定义
/**
* @jc:sql statement="SELECT PRODUCT_ID AS id,PRODUCT_MODEL AS name FROM TD_RELATION"
*/
ItemSelectNodesString[] getProductMap();
/**
* @jc:sql statement="SELECT MAINBOARD_ID AS id,MAINBOARD_NAME AS name FROM TD_RELATION"
*/
ItemSelectNodesInt[] getMainboardMap();
一下是ItemSelectNodesInt的定义:
package com.tclcc;
import java.util.ArrayList;
import java.util.List;
public class ItemSelectNodesInt implements java.io.Serializable
{
public int id;
public String name = null;
public List children = new ArrayList();
public void setChildren(List children){
this.children = children;
}
public List getChildren(){
return this.children;
}
public ItemSelectNodesInt() {}
public ItemSelectNodesInt(int id, String name)
{
this.id = id;
this.name = name;
}
public String toString(){
return this.name;
}
}
以下是在Global.app中的两个下来框的定义:
/**
* @common:control
*/
private MaintainCase mtC;
//机型 from TD_RELATION
private static Map productMap;
public Map getProductMap(){
if(null == productMap){
productMap = new LinkedHashMap();
try{
ItemSelectNodesString[] array = mtC.getProductMap();
for(int i=0;i<array.length;i++)
productMap.put((array[i].id), array[i].name);
}catch(Exception sql){
sql.printStackTrace();
}
}
return productMap;
}
public void setproductMap(){
productMap = null;
}
//机芯 from TD_RELATION
private static Map mainboardMap;
public Map getMainboardMap(){
if(null == incomeMap){
mainboardMap = new LinkedHashMap();
try{
ItemSelectNodesInt[] array = mtC.getMainboardMap();
for(int i=0;i<array.length;i++)
mainboardMap.put(new Integer(array[i].id), array[i].name);
}catch(Exception sql){
sql.printStackTrace();
}
}
return mainboardMap;
}
public void setMainboardMap(){
mainboardMap = null;
}
页面中的查询框:
<table width="100%" align="center" bgcolor="#FFFFFF" height="760">
<tr>
<td valign="top">
<netui:form tagId="form" action="searchAction">
<netui:parameterMap map="{pageFlow.sortFilterService.rowIdQueryParamsMap}"/>
<table>
<tr class="tcl-f12px">
<td align=right bgcolor="#f0f0f0">机芯:</td>
<td>
<netui:select dataSource="{actionForm.mainboard_id}" optionsDataSource="{globalApp.mainboardMap}"/>
</td>
<td align=right bgcolor="#f0f0f0">机型:</td>
<td>
<netui:select dataSource="{actionForm.product_id}" optionsDataSource="{globalApp.productMap}"/>
</td>
<td align=right bgcolor="#f0f0f0">故障现象:</td>
<td>
<netui:select dataSource="{actionForm.trouble_id}" optionsDataSource="{globalApp.troubleMap}" />
</td>
</tr>
</table>
<netui:imageAnchor action="searchAction" align="center" border="0" src='<%=request.getContextPath() + "/resources/images/bu_see.gif"%>' formSubmit="true">
查看
</netui:imageAnchor>
</netui:form>
如果用javascript实现控制的话 估计要改两个hashmap的数据结构 请教高手解决