连动不是这么做滴!~~
参考这个
<% Option Explicit %>
<HTML>
<HEAD>
<link type="text/css" rel="stylesheet" href="../css/main.css">
<TITLE>请选择人员</TITLE>
</HEAD>
<BODY>
<!--#include file="../inc/conn.asp"--><%
dim conn, rs 
set conn = server.CreateObject("ADODB.Connection")
conn.open strConn
conn.CursorLocation = 3'当前树节点的层次信息
set rs = conn.execute("exec getAll 'Colony'")
%>
<TABLE width="400" border="1" align="center" cellPadding=0 cellSpacing=0 bordercolor="#FFFFFF">
  
  <TR bgcolor="lightblue">
    <TD><img src="../images/sysIco/3.gif" width="16" height="16">群组:</TD>
    <TD colspan="2"><img src="../images/sysIco/2.gif" width="16" height="16">成员:</TD>
    <TD><img src="../images/sysIco/1.gif" >人员列表:</TD>
  </TR>
    <TR>
    <TD colspan="4">&nbsp;</TD>
  </TR>
 <TR valign="top">
<TD>
<SELECT id=S1  class="multiSel"   name=S1 onchange="vbscript:change1 "> 
<OPTION value="" ></OPTION>
<%if rs.eof then
response.write "<script>alert('目前没有部门');window.close();</script>"
Response.End
else  
do while not rs.eof%>
<OPTION value="<%=rs(0)%>" ><%=rs(1)%></OPTION>
<%  rs.MoveNext
loop
end if
rs.close
%>
</SELECT> </TD>
<TD>
<SELECT id=S2      class="multiSel" size=2    name=S2 onchange="vbscript:change2"> 
</SELECT> </TD>
<TD>
<INPUT  type=button value="全选" class="btn" title="全选" onclick="vbscript:addAll"><br>
<INPUT  type=button value=" >> " class="btn" title="添加" onclick="vbscript:addOne"><br>
<INPUT  type=button value=" << " class="btn" title="移出" onclick="vbscript:delOne"><br>
<INPUT  type=button value="全删" class="btn" title="全删" onclick="vbscript:delAll"><br>
<INPUT  type=button value="确定" class="btn" title="确定" onclick="vbscript:OK" ><br>
<INPUT  type=button value="取消" class="btn" title="取消" onclick="vbscript:NO" >
</TD>
<TD><SELECT id=S3 class="multiSel" size=2 name=S3 >
</SELECT> </TD>
</TR>
 <TR>
    <TD></TD>
    <TD></TD>
    <TD></TD>
    <TD></TD></TR>
</TABLE>
  <%
Dim A1,A2'人员ID和姓名这两列
set rs = conn.execute("exec getAll 'Userdata'")
do while not rs.eof 
A1=A1 & "," & rs(0)
A2=A2 & "," & chr(34) & rs(1) & chr(34)  
 rs.MoveNext
loop  
rs.close Dim B1,B2,B3'部门ID人员ID和负责人这三列
set rs = conn.execute("exec getAll 'UGRelation'")
do while not rs.eof 
B1=B1 & "," & rs(1)
B2=B2 & "," & rs(2) 
B3=B3 & "," & rs(3)    
 rs.MoveNext
loop  
rs.close
set rs = nothing
conn.close
set conn = nothing
'下面这些为了传递给客户端数组用的,一次加载的数据少的连动
A1=mid(A1,2)
A2=mid(A2,2)
B1=mid(B1,2)
B2=mid(B2,2)
B3=mid(B3,2)
 %> 
<SCRIPT LANGUAGE=vbscript>
Dim A1,A2,B1,B2,B3  ' 创建变量,A人员,B
Dim i,j'用来循环的变量
A1=array(<%=A1%>)'人员ID
A2=array(<%=A2%>)'人员名单
B1=array(<%=B1%>)'部门ID
B2=array(<%=B2%>)'人员ID
B3=array(<%=B3%>)'负责人
sub change1
if S1.value="" then exit sub
remove S2'移除2
for i=0 to ubound(B1)
  if B1(i)=cint(S1.value) then
'如果部门ID是被选中的

'去查找人员名字
for j=0 to ubound(A1)
if A1(j)=B2(i) then
add S2,A1(j),A2(j)
exit for'找到就退出
end if
next

  end if
next
end sub
sub change2 

end sub
sub add(obj,v,t)
dim ooo
set ooo=document.createElement("<OPTION>")
ooo.value=v
ooo.text=t
obj.add ooo
set ooo=nothing
end sub
sub remove(obj)
for each ooo in obj.options
obj.remove ooo.index
next
end sub
sub addAll
for each ooo in S2.options
if not isExist(ooo.value) then 
add S3,ooo.value,ooo.text
end if
next
end sub
Function isExist(x)
isExist=false
for each ooo in S3.options
if ooo.value =cstr(x) then isExist=true 
next
end Function
sub addOne
if isExist(S2.value) then exit sub
add S3,S2.value,S2.options(S2.selectedIndex).text

end sub
sub delOne
if S3.selectedIndex>0 then  S3.remove S3.selectedIndex
end sub
sub delAll
remove S3
end sub
sub OK
dim peopleIDlist,peopleNamelist
for each ooo in S3.options
peopleIDlist=peopleIDlist & ooo.value & " "
peopleNamelist=peopleNamelist & ooo.text & " "
next
window.opener.form1.peopleIDlist.value=trim(peopleIDlist)
window.opener.form1.peopleNamelist.value=trim(peopleNamelist)
window.opener.form1.peopleNamelist.title=trim(peopleNamelist)
window.opener =null
window.close
end sub
sub NO
window.opener =null
window.close
end sub
 </SCRIPT> 
 
</BODY>
</HTML>

解决方案 »

  1.   

    js版本
    <% Option Explicit %>
    <HTML>
    <HEAD>
    <link type="text/css" rel="stylesheet" href="../css/main.css">
    <TITLE>请选择人员</TITLE>
    </HEAD>
    <BODY>
    <!--#include file="../inc/conn.asp"--><%
    dim objID,opt'定义对象编号
    objID=trim(Request("objID"))
    opt=trim(Request("opt"))
    dim conn, rs 
    set conn = server.CreateObject("ADODB.Connection")
    conn.open strConn
    conn.CursorLocation = 3set rs = conn.execute("exec getAll 'Department'") 
    %>
    <TABLE width="400" border="1" align="center" cellPadding=0 cellSpacing=0 bordercolor="#FFFFFF">
      
      <TR align="center" bgcolor="lightblue">
        <TD><img src="../images/sysIco/3.gif" width="16" height="16">部门:</TD>
        <TD colspan="2"><img src="../images/sysIco/2.gif" width="16" height="16">成员:</TD>
        <TD><img src="../images/sysIco/1.gif" >人员列表:</TD>
      </TR>
        <TR>
        <TD colspan="4">&nbsp;</TD>
      </TR>
     <TR valign="top">
    <TD align="center">
    <SELECT id=S1  class="multiSel"   name=S1 onchange="change1(); "> 
    <OPTION value="" ></OPTION>
    <%if rs.eof then
    response.write "<script>alert('目前没有部门');window.close();</script>"
    Response.End
    else  
    do while not rs.eof%>
    <OPTION value="<%=rs("departmentID")%>" ><%=rs("department")%></OPTION>
    <% 
    rs.MoveNext
    loop
    end if
    rs.close
    %>
    </SELECT> </TD>
    <TD align="center">
    <SELECT id=S2      class="multiSel" size=2    name=S2  > 
    </SELECT> </TD>
    <TD align="center">
    <INPUT  type=button value="全选" class="btn" title="全选" onclick="addAll();"><br>
    <INPUT  type=button value=" >> " class="btn" title="添加" onclick="addOne();"><br>
    <INPUT  type=button value=" << " class="btn" title="移出" onclick="delOne();"><br>
    <INPUT  type=button value="全删" class="btn" title="全删" onclick="remove(S3);"><br>
    <INPUT  type=button value="确定" class="btn" title="确定" onclick="OK();" ><br>
    <INPUT  type=button value="取消" class="btn" title="取消" onclick="NO();" > </TD>
    <TD align="center"><SELECT id=S3 class="multiSel" size=2 name=S3 >
    </SELECT> </TD>
    </TR>
     <TR>
        <TD></TD>
        <TD></TD>
        <TD></TD>
        <TD></TD></TR>
    </TABLE>
    <%=opt%><br><%=objID%>  <%
    Dim A1,A2,A3'人员ID和姓名,部门这三列
    set rs = conn.execute("exec getAll 'Person'")
    do while not rs.eof 
    A1=A1 & "," & rs("userID")'人员ID 
    A2=A2 & "," & chr(34) & rs("realName") & chr(34)  '人员姓名 
    A3=A3 & "," & rs("departmentID")'人员部门 
     rs.MoveNext
    loop  
    rs.close
    set rs = nothing
    conn.close
    set conn = nothing
    '下面这些为了传递给客户端数组用的,一次加载的数据少的连动
    A1=mid(A1,2)
    A2=mid(A2,2)
    A3=mid(A3,2)
     %> 
    <SCRIPT >
    //创建变量'人员ID和姓名,部门这三列
    var opt="<%=opt%>" ;
    var objID="<%=objID%>";
    var A1 = new Array(<%=A1%>);//人员ID
    var A2 = new Array(<%=A2%>);//人员名单 
    var A3 = new Array(<%=A3%>);//'部门 
    function change1()
    {
    if(S1.value!= "")
    { //移除2
    remove(S2);
    for(var i=0;i<A3.length;i++ )
    {//如果部门ID是被选中的,加上人员编号和名字
    if(A3[i]==parseInt(S1.value))
    {
    add(S2,A1[i],A2[i]);
    }
    }
    }
    }
    function add(obj,v,t)
    {
    var ooo=document.createElement("<OPTION>");
    ooo.value=v;
    ooo.text=t;
    obj.add(ooo);
    }
    function remove(obj)
    { var count=obj.options.length;
    for(var i=0;i<count;i++)
    {
    obj.remove(0);
    }
    }
    function addAll()
    {
    for(var i=0;i<S2.options.length;i++)

    if(isExist(S2.options[i].value)!= true);
    {
    add(S3,S2.options[i].value,S2.options[i].text);
    }
    }
    }
    function isExist(x)
    {
    var flag=false;
    for(var i=0;i<S3.options.length;i++)
    {
    if (parseInt(S3.options[i].value)==x) 
    {
    flag=true;
    break;  
    }
    }
    return flag;
    }
    function addOne()
    {
    if(isExist(S2.value)!=  true)

    add(S3,S2.value,S2.options(S2.selectedIndex).text);
    }
    }
    function delOne(){
    if(S3.selectedIndex>=0)
    {
      S3.remove(S3.selectedIndex);
     }
    }
    function OK()
    {
    var peopleIDlist=new String("");
    var peopleNamelist=new String("");
    for(var i=0;i<S3.options.length;i++)
    {  
    peopleIDlist=peopleIDlist + S3.options[i].value + ",";
    peopleNamelist=peopleNamelist + S3.options[i].text + ",";
    }  
    dialogArguments.document.getElementsByName(opt+'ID'+objID)[0].value=peopleIDlist.slice(0,peopleIDlist.length-1);
    dialogArguments.document.getElementsByName(opt+objID)[0].value=peopleNamelist.slice(0,peopleNamelist.length-1);
    dialogArguments.document.getElementsByName(opt+objID)[0].title=peopleNamelist.slice(0,peopleNamelist.length-1);
    self.close();
    }
    function NO()
    {
    self.close;
    }
    function findSlibling(x)
    {
     //window.document.getElementsByName
    }
    function trim(x)
    {}
     </SCRIPT> 
     
    </BODY>
    </HTML>