当前位置: 代码迷 >> Web前端 >> [转]dwr级联上拉列表
  详细解决方案

[转]dwr级联上拉列表

热度:117   发布时间:2012-11-06 14:07:00.0
[转]dwr级联下拉列表
访问数据库的部分:

/*
  * 获取所有大类的类别列表
  */ 
public static Map getAccessoriesBigTypeInfoMap(){
  
  Map map = new HashMap();
  List list = new ArrayList();
  Session session = SessionFactory.currentSession();
  Transaction tx = session.beginTransaction();
  
  try {
   
   list = session.createQuery("from AccessoriesTypeInfo where UPID is null or UPID = 0").list();
   for(int i=0;i<list.size();i++){
            
      //---------这里只能采用这种形式,呵呵,为什么??请去看DWR的文档吧
    map.put(((AccessoriesTypeInfo)list.get(i)).getId(),((AccessoriesTypeInfo)list.get(i)).getTypename());
   }
   tx.commit();
  } catch (Exception e) {
   log.error("AccessoriesTypeInfoDAO.getAccessoriesBigTypeInfoList() failed!!!"+e.getMessage());
   if(tx != null) tx.rollback();
  }finally{
   if(session != null) session.close();
  }
  return map;
 }

/*
  * 获取指定大类下的小类类别列表
  *String upid:大类ID
  */
public static Map getAccessoriesSmallTypeInfoMap(String upid){
  
  Map map = new HashMap();
  List list = new ArrayList();
  Session session = SessionFactory.currentSession();
  Transaction tx = session.beginTransaction();
  
  try {
   
   int id = Integer.parseInt(upid);
   list = session.createSQLQuery("select {t.*} from AccessoriesTypeInfo t where t.UPID = ?").addEntity("t",AccessoriesTypeInfo.class).setInteger(0,id).list();
   for(int i=0;i<list.size();i++){
    map.put(((AccessoriesTypeInfo)list.get(i)).getId(),((AccessoriesTypeInfo)list.get(i)).getTypename());
   }
   tx.commit();
  } catch (Exception e) {
   log.error("AccessoriesTypeInfoDAO.getAccessoriesBigTypeInfoList() failed!!!"+e.getMessage());
   if(tx != null) tx.rollback();
  }finally{
   if(session != null) session.close();
  }
  return map;
 }


信息显示页:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.util.List"%> 

<script type='text/javascript' src='/qcbst/dwr/interface/JDate.js'></script>
 <script type='text/javascript' src='/qcbst/dwr/engine.js'></script>
 <script type='text/javascript' src='/qcbst/dwr/util.js'></script>
 <script type='text/javascript' src='/qcbst/dwr/interface/AccessoriesType.js'></script>
<script type="text/javascript" src="../../js/clearspace.js"></script>
<script language="javascript"> 

 function selectAorigin(o){
  
     var big = document.getElementById("bigcategories");
   var small = document.getElementById("smallcategories");
   big.length=1;
   small.length=1;   
   big.options[0].selected=true;
   small.options[0].selected=true;
   if(o == "0"){
  
  DWRUtil.removeAllOptions("bigcategories");   //----------移除下拉列表中的内容
  DWRUtil.removeAllOptions("smallcategories");
  DWRUtil.addOptions("bigcategories",{0:'选择大类'});//----------设置一个初始化的下拉列表内容
  DWRUtil.addOptions("smallcategories",{0:'选择小类'});
     big.length=1;
    small.length=1;   
    big.options[0].selected=true;
    small.options[0].selected=true;
   }else{
         
      //-----------将AccessoriesType.getAccessoriesBigTypeInfoMap()取得的信息给getABigInfo()
   AccessoriesType.getAccessoriesBigTypeInfoMap(getABigInfo);
  }
 }
 function getABigInfo(d){
  
  DWRUtil.addOptions("bigcategories",d);
 }
 
 
 function selectAbigcategories(brand){ 

   var small = document.getElementById("smallcategories");
   small.length=1; 
   small.options[0].selected=true;
  if(brand == "0"){
  
  small.length=1; 
   small.options[0].selected=true;
  }
  AccessoriesType.getAccessoriesSmallTypeInfoMap(getASmallInfo,brand);
 }
 function getASmallInfo(d){
 
  DWRUtil.addOptions("smallcategories",d);
 }
 
 function clearAInfo(){
  document.getElementById("accessoriesname").value="";
 }
 </script>
<form id="form1" name="form1" method="post" action="/qcbst/v_viewaccessoriesinfosearch1" style="0 0 0 0" target="_top">
                <table width="150" border="0" cellspacing="5" cellpadding="0">
                  <tr>
                    <td height="30" align="center"><span class="STYLE1">请在下边进行精确搜索</span></td>
                  </tr>
                  <tr>
                    <td align="center"><select name="aarea" onChange="selectAorigin(this.value)">
                        <option value="0" selected>选择区域</option>
                        <option value="国产">国产</option>
                        <OPTION value="进口">进口</OPTION>
                      </select>
                    </td>
                  </tr>
                  <tr>
                    <td align="center"><select name="bigcategories" onChange="selectAbigcategories(this.value)">
                        <option value="0" selected>选择大类</option>
                        
                      </select>
                    </td>
                  </tr>
                  <tr>
                    <td align="center"><select name="smallcategories">
                        <option value="0" selected>选择小类</option>
                      </select>
                    </td>
                  </tr>
                  <tr>
                    <td align="center"><input name="accessoriesname" type="text" value="    配件名称" size="15" onFocus="clearAInfo()" /></td>
                  </tr>
                  <tr>
                    <td align="center"><input type="submit" name="Submit" value="开始精确查找" /></td>
                  </tr>
                </table>
            </form>


WEB-INF下的DWR.XML:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" " http://www.getahead.ltd.uk/dwr/dwr10.dtd "> 
<dwr> 
<allow> 
<create creator="new" javascript="AccessoriesType"> 
<param name="class" value="com.lvke.web.qcbst.dao.automobile.AccessoriesTypeInfoDAO"/> 
</create> 
</allow> 
</dwr>

  相关解决方案