多级下拉菜单的级连显示问题。
在这里,我为了实现公司-部门级连显示问题,我编写了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" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>添加领导权限</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="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" 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 {
}
}
作者:gdgzboy@牛C网
地址:http://www.niuc.net/post/2046/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
.NET工程的自动化编译
ASP.NET创建并使用Web组件
利用ASP.NET访问共享网络资源
C#中利用process类调用外部程序以及执行dos命令
url传递中文的解决方案总结
VS2005 SQL2005 ASP.NET2.0数据库连接
微软dotnet平台中类型使用的基本原理
Asp.Net中使用水晶报表(下)
C#编写的windows计算器-源代码
ASP.NET 2.0高级数据处理之使用参数
用dotnet编写串口程序的一点心得
代码实例-在ASP.NET中上传图片并生成缩略图





