ASP.NET:多级下拉菜单的级连显示问题

80酷酷网    80kuku.com

  asp.net|菜单|问题|下拉|显示

多级下拉菜单的级连显示问题。

在这里,我为了实现公司-部门级连显示问题,我编写了leader_add_competence_dialogquery.jsp ,web.xml,SelectCropDepartServlet.java 类。

其中注意的是leader_add_competence_dialogquery中的.jspChange_Select() javascript函数中的/selectCropDepart是在web.xml中定义的servlet类。我们在实现应用当中需要修改的用红字标出。

其中leader_add_competence_dialogquery.jsp代码如下:

<% page contentType="text/html; charset=gbk" language="java" import="java.sql.*" errorPage="" %>

<% page import="pub.*" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">

<html>

<head>

<title>添加领导权限</title>

<link language="javascript">

    var req;

    var webSiteID = 6;window.onload=function(){

    }

       function Change_Select(){      

       var zhi = document.getElementById('Corp').value;

         var url = "../selectCropDepart?id=" + escape(zhi);

        //alert(url);

         if (window.XMLHttpRequest) {

             req = new XMLHttpRequest();

         }else if (window.ActiveXObject) {

             req = new ActiveXObject("Microsoft.XMLHTTP");

         }

        if(req){

             req.open("GET", url, true);

             req.onreadystatechange = callback;

             req.send(null);       

         }  

    }

   

    function callback() {

    if (req.readyState == 4) {

        if (req.status == 200) {

                 parseMessage();

       // update the HTML DOM based on whether or not message is valid

        }else{

            alert ("Not able to retrieve description" +req.status+req.statusText);

        }      

    }

   }

  

   function parseMessage() {

    var xmlDoc = req.responseXML.documentElement;

    var xSel = xmlDoc.getElementsByTagName('select');

    var select_root = document.getElementById('Depart');

    select_root.options.length=0;

    for(var i=0;i<xSel.length;i++)

    {   

        var xValue = xSel[i].childNodes[0].firstChild.nodeValue;

    var xText = xSel[i].childNodes[1].firstChild.nodeValue;

    var option = new Option(xText,xValue);

    try

       {

              select_root.add(option);   

       }

       catch(e){

       }  

    }

    }

       function AddLeaderCompetence(){

           var key=document.all.HiddenKey.value;      document.from1.action="leader_ctl.jsp?Oper=addCompetence&Key="+key;

           document.from1.submit();

    }

</script>

<body>

<%

       String strUserID=request.getParameter("Key");

               session.setAttribute("EmployUserID",strUserID);

%>

<form name="from1" action="leader_ctl.jsp"  method="post">

<table cellSpacing="0" cellPadding="0" width="100%" bgColor="#bfcae6" border="0" background="../images/subtitle.gif">

    <tr>

       <td width="99%" height="26"><FONT face="宋体">

          <DIV align="left"><FONT face="宋体" color="#ffffff">  当前位置:系统管理>>领导设置>>添加领导权限       </FONT>

           </DIV>

           </FONT>

       </td>

    </tr>

  </table>

   <input type="hidden" name="HiddenKey" value="<%=strUserID%>" >

  <table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#AABDE0">

  <tr bgcolor="#FFFFFF">

  <td align="right">公司:</td>

  <td>   

    <SELECT name="Corp" id="Corp"  >

      <OPTION value="all" selected>所有公司</OPTION></SELECT></td>

  </tr>

  <tr bgcolor="#FFFFFF">

  <td align="right">部门:</td>

  <td><SELECT name="Depart" id="Depart">

      <OPTION value="all" selected>所有部门</OPTION></SELECT></td>

  </tr>

  <tr bgcolor="#FFFFFF">

  <td colspan="2" align="center"><input type="button" class="button" value="保存">    <input type="button" class="button" value="关闭" </td> 

  </tr>

  </table> 

</form>

</body>

<%   

    Conn conn=new Conn();

    String m1Script="";

    //String m2Script="";

    m1Script=PubClass.BindAllCorpList("document.all.Corp");

    //m2Script=PubClass.BindAllDepartList("document.all.Depart",""+session.getAttribute("cropid"));

    //sPositionList=conn.bindDropListSel("document.all.PositionName","select * from sys08_Position","PositionName","PositionID");

%>

<%= m1Script%>

</html>

Web.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4"

    xmlns=""

    xmlns:xsi=""

    xsi:schemaLocation="

    ">

   <servlet>

    <servlet-name>selectCropDepart</servlet-name>

    <servlet-class>pub.SelectCropDepartServlet</servlet-class>

  </servlet>

  <servlet-mapping>

        <servlet-name>selectCropDepart</servlet-name>

        <url-pattern>/selectCropDepart</url-pattern> 

  </servlet-mapping>

</web-app>

SelectCropDepartServlet.java  Servlet类代码如下

/**

 * 从sys04_Machine表中取数据进行二级下拉菜单(公司,部门)及关联的servlet类

 * author 邓浩

  */

public class SelectCropDepartServlet extends HttpServlet {

       public SelectCropDepartServlet() {

              super();

       }

       public void destroy() {

              super.destroy(); }

       /**

        * The doGet method of the servlet.

        *

        * This method is called when a form has its tag value method equals to get.

        *

        * param request the request send by the client to the server

        * param response the response send by the server to the client

        * throws ServletException if an error occurred

        * throws IOException if an error occurred

        */

       public void doGet(HttpServletRequest request, HttpServletResponse response)

                     throws ServletException, IOException {

              response.setContentType("text/xml");

              response.setCharacterEncoding("UTF-8");

              response.setHeader("Cache-Control", "no-cache");      

              String targetId = request.getParameter("id").toString();

              String xml_start ="<selects>";

             String xml_end = "</selects>";

             String xml = "";

             try{

                    Conn  conn=new Conn();

                    DataTable  dt=new DataTable();

                    String Sql="select * from sys04_Machine where cropid="+targetId;

                    ////System.out.println("Sql:"+Sql);

                     xml+= "<select><value>all</value><text>所有部门</text></select>" ;

                    int i=0;

                    if  (conn.querySql(Sql,dt)){

                           while  (i<dt.getRowCount()){

                                  xml+= "<select><value>"+dt.getItemForName(i,"MachID").toString()+"</value><text>"+dt.getItemForName(i,"MachName").toString()+"</text></select>";  

                                  i=i+1;

                           }

                    }

                 String last_xml = xml_start + xml + xml_end;

                 //System.out.println("last_xml:"+last_xml);

                //  last_xml = new String(last_xml.getBytes("UTF-8"), "GB2312");

                response.getWriter().write(last_xml);

             }// try

             catch  (Exception e){

                    System.out.print(e.getMessage());

             }      

       }

       public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

              doGet(request,response);

      }

       public void init() throws ServletException {

       }

}

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: