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

时间:2021-05-02

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

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

其中ling dao_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" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>添加ling dao权限</title>

<link href="../css/putong.css" type="text/css" rel="stylesheet">

<base target="_self">

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">

<META HTTP-EQUIV="Expires" CONTENT="0">

</head>

<script language="javascript">

var req;

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="ling dao_ctl.jsp?Oper=addCompetence&Key="+key;

document.from1.submit();

}

</script>

<body>

<%

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

session.setAttribute("EmployUserID",strUserID);

%>

<form name="from1" action="ling dao_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">当前位置:系统管理>>ling dao设置>>添加ling dao权限 </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" onChange="Change_Select()" >

<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" onClick="AddLeaderCompetence();" class="button" style="width:80px" value="保存"><input type="button" class="button" value="关闭" onClick="window.close();" style="width:80px"> </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="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<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. <br>

*

* 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 {

}

}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章