JS ListBox动态加载数据

JavaScript实现的Listbox多选组件:邮箱联系人选择解决方案 在这一章节中,我们探讨了针对listbox多选组件性能优化的几个关键策略。从数据处理的优化、渲染性能的提升到事件处理的精简,每一项优化措施都能够针对不同的性能瓶颈进行改进。通过实施这些策略,开发人员可以有效地提升组件的运行效率和用户体验。本文还有配套的精品资源,点击获取简介:JavaScript是用于构建交互式网页应用的前端编程语言,在本场景中,它被用来实现一个Listbox多选组件,允许用户在网页上进行多项选择。 阅读详情

       因项目需要,需要从listbox取出部分信息进行加载。原理为当body初始化时将全部数据保存到一个隐藏的listbox中,通过在body指定onload执行的函数。当用户选择部门时,首先将所有的数据项清除,然后进行循环,将匹配的数据加载到listbox中,因为没有用的服务器事件,因此选择的部门名称,在源数据源中存在。不然单纯的利用js是做不到的。代码如下:

 

  1. <%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="false" Inherits="FNMS.WebSite._default" validateRequest="false" %>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
  3. <HTML>
  4.     <HEAD>
  5.         <title>进行信息发布</title>
  6.         <META content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
  7.         <META content="C#" name="CODE_LANGUAGE">
  8.         <META content="JavaScript" name="vs_defaultClientScript">
  9.         <META content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
  10.         <SCRIPT language="javascript" src="../include/private.js"></SCRIPT>
  11.         <SCRIPT language="javascript" src="../include/fString.js"></SCRIPT>
  12.         <SCRIPT language="javascript">
  13.         function myInit()
  14.         {
  15.             var  alluser =document.getElementById("ListBox1");
  16.             var  save_all_user = document.getElementById("all_user_list");
  17.             var lb_count = alluser.options.length;
  18.             //将所有用户保存到一个listbox中,用途是当选者部门时,从此listbox中获取数据进行数据填充
  19.             for(var i=0;i<lb_count;i++)
  20.             {
  21.                 var v = alluser.options[i].value;
  22.                 var t = alluser.options[i].text;
  23.                 save_all_user.options[save_all_user.options.length] = new Option(t,v,true,true);
  24.             }       
  25.             
  26.         }
  27.         function ChangeDep(depname)
  28.         {
  29.             my_source_list = document.getElementById("ListBox1");
  30.             //将listbox中的所有数据清除完
  31.             my_source_list.options.length = 0; 
  32.             //根据部门进行循环添加数据
  33.             var save_user = document.getElementById("all_user_list");
  34.             var my_count = save_user.options.length;
  35.             for(var i=0;i<my_count;i++)
  36.             {
  37.                 var v = save_user.options[i].value;
  38.                 var t = save_user.options[i].text;
  39.                 if(depname != "")
  40.                 {
  41.                     if (t.indexOf(depname) >0)
  42.                     {
  43.                         my_source_list.options[my_source_list.options.length] = new Option(t,v,false,false);
  44.                     }
  45.                 }
  46.                 else
  47.                 {
  48.                         my_source_list.options[my_source_list.options.length] = new Option(t,v,false,false);
  49.                 }
  50.             }
  51.         }
  52.         //提交前检测数据
  53.         function checkForm()
  54.         {
  55.             try
  56.             {
  57.                 var t = document.Form1;
  58.                 var re = //s/g;
  59.                 if (t.art_title.value.replace(re,"") == "")
  60.                 {
  61.                     alert("请填写信息标题");
  62.                     t.art_title.focus();
  63.                     return false;
  64.                 }
  65.                 if (Parse(t.art_title.value))
  66.                 {
  67.                     alert("信息标题中不能包含有下列字符/n英文的单引号、双引号、<>等/n请用相应的中文符号替代");
  68.                     t.art_title.focus();
  69.                     return false;
  70.                 }
  71.                 if (t.art_title.value.length>150){
  72.                     alert("信息标题限制在150字数以内");
  73.                     t.art_title.focus();
  74.                     return false;
  75.                 }
  76.                 
  77.                 tt.art_content.value = t.doc_html.value;
  78.                 tt.art_content_text.value = t.doc_html.text;
  79.                 if (t.art_content.value == "")
  80.                 {
  81.                     alert("请填写信息内容");
  82.                     return false;
  83.                 }
  84.                 if(t.userlist.value =="")
  85.                 {
  86.                     alert("请选择回复部门");
  87.                     return false;
  88.                 }
  89.                 
  90.                 t.submit();
  91.                 
  92.             }
  93.             catch(e)
  94.             {
  95.                 alert(e);
  96.                 return false;
  97.             }
  98.         }
  99.         //改变模式
  100.         function ChangeTitleStyle()
  101.         {
  102.             Form1Form1.art_title.className=Form1.art_title_style.options[Form1.art_title_style.selectedIndex].value;
  103.         }
  104.         
  105.         //添加用户
  106.         function SelectOne()
  107.         {
  108.             
  109.             var lst1=window.document.getElementById("ListBox1");
  110.             var lstindex=lst1.selectedIndex;
  111.             if(lstindex<0)
  112.                 return;
  113.             var v = lst1.options[lstindex].value;
  114.             var t = lst1.options[lstindex].text;
  115.             //lst1.options[lstindex].parentNode.removeChild(lst1.options[lstindex]);
  116.             var lst2=window.document.getElementById("lbUserList");
  117.             //判断选中的用户数,只能为一个
  118.             if (lst2.options.length>=1)
  119.             {
  120.                 alert("回复人员只能有一个");
  121.                 return;
  122.             }
  123.             if(jsSelectIsExitItem(lst2,v))
  124.             {
  125.                 alert("回复人员:"+t+" 已经存在");
  126.             }
  127.             else
  128.             {
  129.                 lst2.options[lst2.options.length] = new Option(t,v,true,true);
  130.                 
  131.                 //保存用户名字符串到hidden中
  132.                 var user = window.document.getElementById("userlist");
  133.                 user.value += v+"|"; 
  134.             }
  135.                 
  136.         }
  137.         
  138.         //判断选项中是否存在
  139.         function jsSelectIsExitItem(objSelect,objItemValue)
  140.         {
  141.             var isExit = false;
  142.             for(var i=0;i<objSelect.options.length;i++)
  143.             {
  144.                 if(objSelect.options[i].value == objItemValue)
  145.                 {
  146.                     isExit = true;
  147.                     break;
  148.                 }
  149.             }      
  150.             return isExit;
  151.         }
  152.         
  153.         //删除用户
  154.         function DelOne()
  155.         {
  156.             var lst2=window.document.getElementById("lbUserList");
  157.             var lstindex=lst2.selectedIndex;
  158.             if(lstindex>=0)
  159.             {
  160.                 var v_rem = lst2.options[lstindex].value+"|";
  161.                 var v = lst2.options[lstindex].value;
  162.                 var t = lst2.options[lstindex].text;
  163.                 //移出用户
  164.                 lst2.options[lstindex].parentNode.removeChild(lst2.options[lstindex]);
  165.                 //将移出的用户,添加的左侧的数据中
  166.                 //var lst1=window.document.getElementById("ListBox1");
  167.                 //lst1.options[lst1.options.length] = new Option(t,v,true,true);
  168.                 
  169.                 //将hidden中保存的用户名也作移除操作
  170.                 var user = window.document.getElementById("userlist");
  171.                 useruser.value = user.value.replace(v_rem.toString(),"");
  172.             }
  173.                 
  174.         }
  175.         </SCRIPT>
  176.     </HEAD>
  177.     <BODY MS_POSITIONING="GridLayout" onload="myInit()">
  178.         <FORM id="Form1" onsubmit="return checkForm()" method="post" runat="server">
  179.             <TABLE class="clsCententTable" height="50%" cellSpacing="0" cellPadding="5" width="100%"
  180.                 border="1">
  181.                 <TR class="clsOperationHead">
  182.                     <TD colSpan="2" height="26"><B>添加新信息</B>
  183.                     </TD>
  184.                 </TR>
  185.                 <TR class="clsCell">
  186.                     <TD align="left" width="10%">信息标题</TD>
  187.                     <TD align="left" width="85%"><INPUT class="clsText" style="WIDTH: 480px; HEIGHT: 22px" type="text" maxLength="150" size="74"
  188.                             name="art_title"><FONT color="red">(*)</FONT> 
  189.                     </TD>
  190.                 </TR>
  191.                 <TR class="clsCell">
  192.                     <TD align="left" width="10%">所属栏目</TD>
  193.                     <TD align="left" width="85%">
  194.                         <asp:DropDownList id="dllClass" runat="server" Width="480px"></asp:DropDownList></TD>
  195.                 </TR>
  196.                 <TR class="clsCell">
  197.                     <TD colSpan="2">
  198.                         <OBJECT id="doc_html" style="LEFT: 0px; TOP: 0px" type="text/x-scriptlet" height="450" width="100%"
  199.                             data="../editor/editor.html" VIEWASTEXT>
  200.                         </OBJECT>
  201.                         <INPUT type="hidden" name="art_content"> <INPUT type="hidden" name="art_content_text">
  202.                     </TD>
  203.                 </TR>
  204.             </TABLE>
  205.             <TABLE width="100%">
  206.                 <TR>
  207.                     <TD colSpan="3">回复用户列表:</TD>
  208.                 </TR>
  209.                 <TR>
  210.                     <TD style="WIDTH: 236px"><FONT face="宋体">待选用户<BR>
  211.                             <asp:DropDownList  id="ddlDepart" runat="server" Width="184px"></asp:DropDownList><BR>
  212.                             <asp:ListBox id="ListBox1" runat="server" Width="184px"></asp:ListBox></FONT></TD>
  213.                     <TD style="WIDTH: 142px" align="center"><FONT face="宋体"><INPUT title="添加用户" onclick="SelectOne()" type="button" value=">>"><BR>
  214.                             <BR>
  215.                             <INPUT title="移出用户" onclick="DelOne()" type="button" value="<<"> </FONT>
  216.                     </TD>
  217.                     <TD><FONT face="宋体">选定用户<BR>
  218.                         </FONT>
  219.                         <asp:ListBox id="lbUserList" runat="server" Width="176px" Height="75px"></asp:ListBox></TD>
  220.                 </TR>
  221.                 <TR>
  222.                     <TD colSpan="3">
  223.                         <asp:Button id="btnSave" runat="server" Text="开始发布"></asp:Button></TD>
  224.                 </TR>
  225.             </TABLE>
  226.             <INPUT id="userlist" type="hidden" name="userlist">
  227.             <!--此HTML控件中保存所有的用户列表-->
  228.             <SELECT id="all_user_list" type="select-one" style="display:none;"></SELECT>
  229.         </FORM>
  230.     </BODY>
  231. </HTML>

asp.net后台服务器代码,主要是添加,当选择部门时,进行事件的响应,代码如下:

  1. private void Page_Load(object sender, System.EventArgs e)
  2.         {
  3.             //添加双击事件
  4.             this.ListBox1.Attributes.Add("onDblClick","SelectOne()");
  5.             this.lbUserList.Attributes.Add("onDblClick","DelOne()");
  6.             this.ddlDepart.Attributes.Add("onchange","ChangeDep(this.options[this.selectedIndex].value)");
  7.             // 在此处放置用户代码以初始化页面
  8.             if(!Page.IsPostBack)
  9.             {
  10.                 this.dgBind();
  11.             }
  12.             
  13.         }
js操作listbox js,listbox,select,item,selectedValue,selectedIndex 立即下载

相关推荐

listBox JS 实现

试用Javascript实现ListBox的页面实现

用JS做了个ListBox的简单功能

[code="java"] 美元/英镑 美元/港币 美元/新加坡元 美元/日元 美元/加拿大元 美元/欧元 ...

大米文子 288

js listbox多选组件

访QQ邮件添加联系人多选组件。 本地加载json数据。 支持各浏览器。 webkit内核浏览器需要相对路径访问。

javascript操作listbox,实现无刷新

 function SelectAll()        {            var lst1=window.document.getElementById("SourceListBox");            var length = lst1.options.length;            for(var i=0;i            {                va

gentlelhn的专栏 531

JS ListBox的简单功能实现代码

页面效果如下:代码也贴出来跟大家分享: 美元/英镑 美元/港币 美元/新加坡元 美元/日元 美元/加拿大元 美元/欧元 [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

告别OLE!Delphi操作Excel的3种轻量级方案横向评测(FlexCel/XLSReadWriteII/LibXL)

本文深入评测了Delphi操作Excel的三种轻量级方案:FlexCel、XLSReadWriteII和LibXL。通过技术架构、API设计、性能测试和实战案例的全面对比,帮助开发者选择最适合的工具,提升Excel文件处理效率,告别传统OLE方案的依赖和性能问题。

onion的博客 930

ListBox三级联动

Default.aspx中文件   asp.net实现DropDownList、ListBox无刷新三级联动的两种方法 <!--//以XML求取ListBox2的数据function XmlPost2(obj){   var svalue = obj.value;   var webFileUrl = "?povinceid="

'尛東峝學. 1771

告别jom Error 2:深入理解QtCreator、CMake与MSVC工具链的协作机制

本文深入解析QtCreator构建过程中常见的jom Error 2问题,揭示CMake与MSVC工具链的协作机制。从CMake生成器的工作原理到MSVC工具链的组件协作,帮助开发者系统化诊断构建错误,提升开发效率。

weixin_30654419的博客 432

asp.net实现DropDownList、ListBox无刷新三级联动的方法

asp.net实现DropDownList、ListBox无刷新三级联动的方法前台代码:asp.net实现DropDownList、ListBox无刷新三级联动的两种方法 //以XML求取ListBox2的数据function XmlPost2(obj){   var svalue = http://www.code-123.com/html/obj.value;   var webFileUrl

himly98_126mail的专栏 1111

Ubuntu断网环境下的系统更新:apt-offline保姆级教程(附常见问题排查)

本文详细介绍了在Ubuntu断网环境下使用apt-offline进行系统更新的完整教程,包括环境准备、签名文件生成、数据传输方案对比及常见问题排查。特别适用于企业级开发环境或安全敏感场景,帮助运维人员高效完成离线系统更新,确保系统安全与稳定。

weixin_29214691的博客 361

基于WebRTC的现代在线视频会议系统设计与实现

本文详细介绍了如何使用Java和WebRTC技术构建一个完整的在线视频会议系统。我们将从WebRTC的基础原理讲起,逐步深入到信令服务器设计、媒体服务器配置、前后端实现以及高级功能的开发。文章包含大量代码示例和架构图,旨在为开发者提供一套完整的视频会议解决方案。关键词:WebRTC、视频会议、Java、Spring Boot、信令服务器、STUN/TURN、媒体服务器:获取摄像头和麦克风访问权限:处理点对点连接和流传输:实现浏览器之间的任意数据交换。

2201_76125393的博客 189

XmlHttp实现无刷新三联动ListBox

1.htmlHTML>    HEAD>        title>XmlHttp实现无刷新三联动ListBoxtitle>        meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">        meta name="CODE_LANGUAGE" Content="C#">        meta nam

1155

科研绘图系列:R语言折线图(linechart plots)

科研绘图系列:R语言折线图(linechart plots)

专注生信领域 1271

JS完成ListBox内容的交互实例

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

bobo 876

优快云专栏限时活动!福利公告必读!

本人优快云付费专栏周排名27名专业博主,每周文章平均阅读量约7w以上!

FJN110的博客 3154

Linux系统之部署经典魔塔小游戏

Linux系统之部署经典魔塔小游戏

jks212454的博客 1817

Js完成ListBox内容的交互实例

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

weixin_30848775的博客 83

28-手把手教你手写CPU-Verilog - 乘法器设计:Booth算法与Wallace树乘法器

文章摘要: 本文详细介绍了两种高效乘法器设计方法:Booth算法和Wallace树乘法器。Booth算法通过检测乘数连续1/0减少部分积,适合有符号数运算;Wallace树采用树形结构压缩部分积,显著降低延迟。文章包含算法原理、具体示例、Verilog实现代码(4位乘法器)及性能对比表,指出Booth适用于通用处理器,Wallace树更适合高性能DSP/GPU。最后强调实际设计中需根据速度、面积和功耗需求选择合适方案。

2301_79143213的博客 206

React Dual Listbox 使用指南

React Dual Listbox 使用指南 项目介绍 React Dual Listbox 是一款功能丰富的双列表框组件,专为 React 设计。它提供了一个轻量级的解决方案来呈现和管理双向选择列表。支持通过双击、按Enter键或点击控制面板中间的按钮来移动选项。此组件由 Jake Zatecky 维护,并且页面托管在 GitHub Pages 上。特性包括optgroup支持、过滤功能、懒...

gitblog_01199的博客 841

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

listbox java_listbox读取数据库

asp.net 2个ListBox之间转移数据的实现2个ListBox之间转移数据,通常左侧的是从数据库动态读取出来的数据,然后右侧是用户从左侧选择数据项后添加的,这种情况在设置权限等场合经常用到,如下图:功能实现起来也很简单,实现方法如下:/// /// 选择...文章暖枫无敌2015-01-10597浏览量WPF编游戏系列 之九 物品清单再优化原文:WPF编游戏系列 之九 物品清单再优化在“第...

weixin_36080584的博客 429

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: JS 关闭本页面,刷新父页面
下一篇: 分支语句-布尔代数
striveman
博客等级 码龄20年 27粉丝 55原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值