JS完成ListBox内容的交互实例

来源:互联网 发布:标准差计算器软件 编辑:程序博客网 时间:2024/05/16 19:25

 这是我在网上找的一篇文章,但是我没有实现他的功能!望高手帮忙下,谢谢。。

这几天在做一个关于大学排名的网站,其中遇到了上图中的问题,需向某个对象中添加新的学校群体,这就用到了ListBox,而要进行两个ListBox之间的交互,无疑有两个办法:一个是在服务器端与客户端不停的PostBack,这无疑会大大降低效率。这是就体现出JavaScript在客户端的优势。下面介绍一下,又不足的地方希望大家指出!

  下面是JS代码:用四个函数分别对应四个按钮,完成该功能。

需要解释的是由于JS脚本是在客户端执行的,因此服务器端控件是无法调用JS的,由于ID无法被找到,但用<%=lb_NewName.ClientID %>的方法就巧妙的解决得该问题,是asp控件拥有客户端id,这样就可以调用了。

  1. <script type="text/javascript">
  2.         function SelectAll()
  3.         {
  4.             var lst1=window.document.getElementById("<%=lb_Sourse.ClientID %>");
  5.             var length = lst1.options.length;
  6.              var string = window.document.getElementById("<%=hf_NewName.ClientID %>")
  7.             for(var i=0;i<length;i++)
  8.             {
  9.                 var v = lst1.options[i].value;
  10.                 var t = lst1.options[i].text;             
  11.                 var lst2=window.document.getElementById("<%=lb_NewName.ClientID %>");
  12.                 lst2.options[i] = new Option(t,v,true,true);
  13.                 string.value+=v;
  14.             }
  15.         }
  16.         
  17.         function DelAll()
  18.         {
  19.             var lst2=window.document.getElementById("<%=lb_NewName.ClientID %>");
  20.             var length = lst2.options.length;
  21.             for(var i=length;i>0;i--)
  22.             {
  23.                 lst2.options[i-1].parentNode.removeChild(lst2.options[i-1]);
  24.             }
  25.         }
  26.         
  27.         function SelectOne()
  28.         {
  29.           var string = window.document.getElementById("<%=hf_NewName.ClientID %>")
  30.             var lst1=window.document.getElementById("<%=lb_Sourse.ClientID %>");
  31.             var lst2=window.document.getElementById("<%=lb_NewName.ClientID %>");
  32.             var lstindex=lst1.selectedIndex;
  33.             var length = lst2.options.length;
  34.             var isExists = false;
  35.             if(lstindex<0)
  36.                 return;
  37.             else if(length != null)
  38.             {
  39.                 for(var i=0;i < length; i++)
  40.                 {
  41.                      if(lst2.options[i].text == lst1[lstindex].text&&lst2.options[i].value == lst1[lstindex].value)
  42.                      {
  43.                         isExists = true;
  44.                      }
  45.                 }
  46.             }
  47.             else
  48.             {
  49.                 return;
  50.             }
  51.             if (isExists == false)
  52.             {
  53.                 var v = lst1.options[lstindex].value;
  54.                 var t = lst1.options[lstindex].text;
  55.                 lst2.options[lst2.options.length] = new Option(t,v,true,true);
  56.                 string.value+=v;
  57.             }
  58.             else
  59.             {
  60.                 alert("所选条目已经存在");
  61.                 return false;
  62.             }
  63.         }
  64.         
  65.         function DelOne()
  66.         {
  67.             var lst2=window.document.getElementById("<%=lb_NewName.ClientID %>");
  68.             var lstindex=lst2.selectedIndex;
  69.             if(lstindex>=0)
  70.             {
  71.                 var v = lst2.options[lstindex].value+";";
  72.                 lst2.options[lstindex].parentNode.removeChild(lst2.options[lstindex]);
  73.             }
  74.         }
  75. </script>