求两个列表框之间传值的完整代码,添加,删除,全部添加,全部删除,其中一个可以上下调整顺序

解决方案 »

  1.   

    <SCRIPT language="JavaScript">
    <!--
    function move(s1,s2,flag){
    var e=window.event.srcElement;
    var tem=new Array();
    var temz=new Array(); //过渡
    var sa=document.Form1.elements[s1];
    var sb=document.Form1.elements[s2];
    var s=sa.selectedIndex>-1?1:0;
    with(sa)
    {
    for(i=length-1;i>=0;i--){
    if(options[i].selected||flag){
    var xxcz=0;
    //添加时
    if(e.id=='aa1' || e.id=='aa2'){
    for(j=0;j<sb.length;j++){
    if(options[i].value.substring(0,1) != sb.options[j].value.substring(0,1)){
    xxcz=1;
    break;
    } }
    for(j=0;j<temz.length;j++){
    if(options[i].value.substring(0,1) != temz[j].value.substring(0,1)){
    xxcz=1;
    break;
    }
    }
    }
    if (xxcz==0){
    temz[temz.length]=options[i];
    options[i]=null;
    }
    }
    }
    }
    if(s||flag)
    {
    for(i=0;i<sb.length;i++) tem[tem.length]=sb.options[i];
    for(i=temz.length-1;i>=0;i--) tem[tem.length]=temz[i];
    with(sb)
    {
    length=0;
    //tem.sort(sortArr)
    for(i=0;i<tem.length;i++) options[length]=new Option(tem[i].text,tem[i].value);
    }
    }
    zx(s1);
    zx(s2);
    }/*move_self(s,flag):s是列表框name,flag(1,-1),是上移或下移*/
    function  move_self(s,flag)
    {
    var sa=document.Form1.elements[s]
    var tem;
    with(sa)
     {
    if(flag==1)
    {
    if(selectedIndex>0)
      for(i=0;i<length;i++)
     if(options[i].selected)
    {
      tem_text=options[i].text;tem_value=options[i].value;
      options[i].text = options[i-1].text;
    options[i].value = options[i-1].value;
    options[i-1].text = tem_text;options[i-1].value = tem_value;
      options[i-1].selected = true;options[i].selected = false;
      }
    }
    else
    {
     for(i=length-1;i>=0;i--)
    if(options[i].selected)
      {
    if(i==length-1) break;
      tem_text=options[i].text;tem_value=options[i].value;
      options[i].text = options[i+1].text;
    options[i].value = options[i+1].value;
    options[i+1].text =  tem_text;options[i+1].value = tem_value;
    options[i+1].selected=true;options[i].selected=false;
    }
     }
    }
    }/*显示列表框选中的值,s是列表框的name*/
    function show(s)
    {
    var str=""
     with(document.Form1.elements[s])
    for(i=0;i<length;i++)
     if(options[i].selected)
     str+="\n第"+(i+1)+"个option:\ntext:"+options[i].text+" value:"+options[i].value;
     alert(str);
    }
    }
    function sortArr(a,b)
    {
    if(a.text>b.text) return 1
    if(a.text<b.text) return -1
    return 0
    }function pint(s1,s2)
    { var oj= document.getElementById('Table3');
    oj.focus();
    var parentwin=window.dialogArguments;
    if (parentwin!=null) {
    var parentsel=parentwin.document.all.DropDownList1;
    if (parentsel!=null){
    var obj = document.Form1.elements[s1];
    var sel = document.Form1.elements[s2];
    var tem=new Array();
    for(i=0;i<parentsel.length;i++)
    {
    tem[tem.length]=parentsel.options[i];
    sel.options[i]=new Option(tem[i].text,tem[i].value);
    }
    for(i=obj.length-1;i>=0;i--){
    for(j=0;j<sel.length;j++){
    if(obj.options[i].value==sel.options[j].value){
    obj.options[i]=null;
    break;
    }
    }
    }
    }
    }
    zx('a');
    zx('b');
    }//-->
    </SCRIPT>
      

  2.   

    function ReturnValue()
    {
    var list = document.getElementById("lstTarget");
    var rtnText = "";

    for(i=0; i<list.options.length; i++) 
    {
    rtnText += list.options[i].text + ",";
    }
    top.returnValue = rtnText;
    top.close();
    }
    function SelSingleDelTarget()
    {
    var source = document.getElementById("lstSource");
    var target = document.getElementById("lstTarget");
    //remove old selected
    if(target.options.length > 0)
    {
    for(i=0; i<target.options.length;i++)
    {
    var opt = target.options[i];
    var newopt = new Option(opt.text,opt.value);
    source.options.add(newopt);
    target.options.remove(i);
    }
    }
    }

    function SelSingle()
    {
    var source = document.getElementById("lstSource");
    var target = document.getElementById("lstTarget");
    var index = source.selectedIndex;

    if (index> -1)
    {
    //Delete selected first
    SelSingleDelTarget();
    var opt = source.options[index];
    var newopt = new Option(opt.text,opt.value);
    target.options.add(newopt);
    source.remove(index);
    }
    return true;
    }

    function MoveListItems(fromList, toList)
    {
    while(fromList.selectedIndex > -1)
    {
    for(i=0;i<fromList.options.length;i++)
    {
    var opt = fromList.options[i];
    if(opt.selected)
    {
    var newopt = new Option(opt.text,opt.value);
    toList.options.add(newopt);
    fromList.options[i] = null;
    }
    }
    }
    }

    function Sel()
    {
    var source = document.getElementById("lstSource");
    var target = document.getElementById("lstTarget");
    var multi = (document.getElementById("hdnMultiple").value == "True") ? true : false;
    if (multi) 
    {
    MoveListItems(source,target) ;
    }
    else
    {
    SelSingle();
    }
    }

    function UnSel()
    {
    var source = document.getElementById("lstSource");
    var target = document.getElementById("lstTarget");
    var multi = (document.getElementById("hdnMultiple").value == "True") ? true : false;
    if(multi)
    {
    MoveListItems(target,source);
    }
    else
    {
    UnSelSingle();
    }
    }

    function UnSelSingle()
    {
    var source = document.getElementById("lstSource");
    var target = document.getElementById("lstTarget");
    var index = target.selectedIndex;
    if (index> -1)
    {
    var opt = target.options[index];
    var newopt = new Option(opt.text,opt.value);
    source.options.add(newopt);
    target.remove(index);
    }
    return true;
    }

    function FindItem()
    {
    //debugger;
    var filter = document.getElementById("txtFind").value;
    var source = document.getElementById("lstSource");
    //modified by pine
    if (filter == null || filter == "")
    {
    for(i=0; i<source.options.length; i++)
    {
    source.options[i].selected = false;
    }
    return;
     }

    for(i=0; i<source.options.length; i++)
    {
    var opt = source.options[i];
    if (opt.text.toLowerCase().indexOf(filter.toLowerCase()) > -1)
    {
    opt.selected = true;
    }
    else
    {
    opt.selected = false;
    }
    }
    }
    function up()
    {
    var target = document.getElementById("lstTarget");
    var i=target.selectedIndex; if (i<1 ) return;
    var oldopt = target.options[i];
    var oldoptV = new Option(oldopt.text,oldopt.value);
    var newopt = target.options[i-1];
    var newoptV = new Option(newopt.text,newopt.value);
    target.options[i-1]=oldoptV;
    target.options[i]=newoptV;
    target.options[i-1].selected=true;
    }
    function down()
    {
    var target = document.getElementById("lstTarget");
    var i=target.selectedIndex;
    if (i>=target.options.length-1 ) return;
    var oldopt = target.options[i];
    var oldoptV = new Option(oldopt.text,oldopt.value);
    var newopt = target.options[i+1];
    var newoptV = new Option(newopt.text,newopt.value);
    target.options[i+1]=oldoptV;
    target.options[i]=newoptV;
    target.options[i+1].selected=true;
    } </script>
      

  3.   

    <form id="Form1" method="post" runat="server">
    <table style="WIDTH: 100%; HEIGHT: 100%" height="100%" cellSpacing="0" cellPadding="0"
    width="100%" bgColor="#fffbff" border="0">
    <tbody>
    <tr>
    <td>
    <table width="496" style="WIDTH: 496px; HEIGHT: 229px">
    <tr>
    <td width="10"></td>
    <td vAlign="top" width="185" height="185"><SELECT id="lstSource" ondblclick="Sel();" style="WIDTH: 199px; HEIGHT: 185px" size="11"
    name="lstSource" runat="server"></SELECT></td>
    <td width="85">
    <P></P>
    <P align="center"><INPUT class="Button" id="btnSel" style="WIDTH: 50px" onclick="Sel();" type="button" value=">>"
    name="btnSel"></P>
    <P align="center"><INPUT class="Button" id="btnUnSel" style="WIDTH: 50px" onclick="UnSel();" type="button"
    value="<<" name="btnUnSel"></P>
    <P>&nbsp;</P>
    </td>
    <td vAlign="top" width="185" height="185"><SELECT id="lstTarget" ondblclick="UnSelSingle();" style="WIDTH: 191px; HEIGHT: 185px" size="11"
    name="lstTarget" runat="server"></SELECT></td>
    <td width="200">
    <table width="100%">
    <tr>
    <td><IMG style="CURSOR: hand" onclick="up();" height="18" src="../Images/left_up.gif" width="16"></td>
    </tr>
    <tr>
    <td><IMG style="CURSOR: hand" onclick="down();" height="18" src="../Images/left_down.gif"
    width="16"></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td style="HEIGHT: 87px" colSpan="5">
    <table width="475">
    <tr>
    <td width="10"></td>
    <td colSpan="3">
    <HR>
    </td>
    <TD width="10"></TD>
    </tr>
    <TR>
    <TD width="10"></TD>
    <TD width="255"></TD>
    <TD align="right" width="100"><INPUT class="Button" id="btnOK" style="WIDTH: 100px" onclick="ReturnValue();" type="button"
    value="OK"></TD>
    <TD align="right" width="100"><INPUT class="Button" id="btnCancel" style="WIDTH: 100px" onclick="javascript:top.returnValue=null;top.close();"
    type="button" value="Cancel" name="btnCancel"></TD>
    <TD width="10"></TD>
    </TR>
    </table>
    </td>
    </tr>

    </tbody>
    </table>
    </TD></TR></TBODY></TABLE></form>