`

dwr的二级列表级联

阅读更多
1.在页面中引入dwr的两个js文件
     <!-- 列表级联 -->
        <script type ="text/javascript" src='<%=basePath %>dwr/engine.js'></script>
        <script type="text/javascript" src='<%=basePath %>dwr/util.js'></script>
2.(表单)form的内容如下:
       <form action="person.do" method="post" onsubmit="return validate(this);">
            <tr>
<td class="tdEditLabel" > 机构:</td>
总:<select name="Org1" id="Org1" onchange="change1(this.value);">
                   <option>--请选择--</option>
                    <c:choose>
                       <c:when test="${empty list}">
                        
                       </c:when>
                       <c:otherwise>
                         <c:forEach items="${list}" var="l">
                           <option value="${l.id }">${l.description }</option>
                         </c:forEach>
                       </c:otherwise>
                    </c:choose>
                 </select>
               分: <select name="orgId" id="orgid">
                 </select>
               </td>
        </tr>
       </form>
3.web.xml配置文件必须配置dwr:
        <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>
4.编写查询数据库的实现类
package com.dywz.track.manager.impl;
import java.util.List;
import java.util.Map;
        //查询所有顶级机构(List)

public List Org1() {
String sql = "select * from t_orgnization where fid = ?";
List list = new ArrayList();
Connection con = null;
PreparedStatement pst = null;
ResultSet rst = null;

try{
con = DBConnectionPool.getConnection();
pst = con.prepareStatement(sql);
pst.setString(1, "0");
rst = pst.executeQuery();
while(rst.next()){
Orgnization org = new Orgnization();
org.setId(rst.getInt("id"));
org.setDescription(rst.getString("description"));
org.setFid(rst.getInt("fid"));
list.add(org);
}

}catch(Exception e){
e.printStackTrace();
}finally{
DBConnectionPool.close(rst);
DBConnectionPool.close(pst);
DBConnectionPool.close(con);
}
return list;
}
    //查询所有顶级机构的下属机构(Map)
public Map Org2(final int fid) {
String sql = "select * from t_orgnization where fid = ? ";
Map map = new HashMap();

Connection conn = null;
PreparedStatement pst = null;
ResultSet rst = null;
try{
conn = DBConnectionPool.getConnection();
pst = conn.prepareStatement(sql);
    pst.setInt(1, fid);
    rst = pst.executeQuery();
    while(rst.next()){
   
    Orgnization org = new Orgnization();
    org.setId(rst.getInt("id"));
    org.setDescription(rst.getString("description"));
    map.put(org.getId(), org.getDescription());
    }

}catch(Exception e){
e.printStackTrace();
}finally{
DBConnectionPool.close(rst);
DBConnectionPool.close(pst);
DBConnectionPool.close(conn);
}

return map;
}
5.在dwr.xml文件中配置实现类
     <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
  <allow>
    <create creator="new"  javascript="TT">
      <param name="class" value="com.dywz.track.manager.impl.OrgManagerImpl"/>
    </create>
   
  </allow>
</dwr>
6.在页面配置javascript:
    
<script type="text/javascript">
    function change1(dd){
 
    DWRUtil.removeAllOptions("orgId");
      TT.Org2(dd,callback);
    }
    function callback(data){
    
     DWRUtil.addOptions("orgId",["--请选择--"]);//让第2个下拉框显示“--请选择--”
  DWRUtil.addOptions("orgId",data);  
  }
</script>
分享到:
评论
1 楼 化蝶自在飞 2010-05-28  
一如既往的负责 ^ 

相关推荐

Global site tag (gtag.js) - Google Analytics