optiontransferselect例子
Struts2 OptionTransferSelect标签 动态赋值:![]()
1、html片面:
<td class="td2">
<s:optiontransferselect
id="sysWard"
doubleId="userWard"
name="userDept"
list="deptMap"
listKey="key"
listValue="value"
multiple="true"
headerKey="cnKey"
leftTitle="选择部门向右添加"
doubleList="deptNameMap"
doubleListKey="key"
doubleListValue="value"
doubleName="userBean.placeDept"
doubleHeaderKey="cnKey"
rightTitle="科护士长管理科室"
doubleMultiple="true"
allowSelectAll="false"
allowUpDownOnLeft="false"
allowUpDownOnRight="false"
addToLeftLabel="<<--向左"
addToRightLabel="向右-->>"
addAllToRightLabel="全选向右"
addAllToLeftLabel="全选向左"
cssClass="option"
doubleCssClass="option"
/>
</td>
2、异步动态赋值:
// 选择科护士长 事件
$("#select_userBean").change(function(){
$("#user_job_number").val($(this).val()); $.ajax({
type:"post",
url:"ManagerDept_setSysDept_null_null",
data:{"userJobNumber":$("#user_job_number").val()},
async: false,
dataType:"json",
success:function(msg){
var obj = eval(msg);
$("#sysWard option").remove();//将select中的信息清空
$.each(obj, function(key,value){
$("#sysWard").append("<option value="+key+">" + value + "</option>");
});
}
});
$.ajax({
type:"post",
url:"ManagerDept_setUserDept_null_null",
data:{"userJobNumber":$("#user_job_number").val()},
async: false,
dataType:"json",
success:function(msg){
var obj = eval(msg);
$("#userWard option").remove();//将select中的信息清空
$.each(obj, function(key,value){
$("#userWard").append("<option value="+key+">" + value + "</option>");
}); }
});
});
// 修改按钮 事件
$("#btn_updateManageDept").click(function(){
var depts = "";
$("#userWard").find("option").each(function(i){
depts += $(this).val()+",";
});
depts = depts.substr(0,depts.length-1);
$.ajax({
type:"post",
url:"ManagerDept_updateManagerDept_null_null",
data:{"depts":depts,"userJobNumber":$("#user_job_number").val()},
async: false,
dataType:"json",
success:function(msg){
if(msg == "1"){
alert("更新成功!");
}else{
alert("更新失败!");
}
}
});
});
********************************************************************************************************
关键点1:动态赋值:
$("#sysWard option").remove();//将select中的信息清空
$.each(obj, function(key,value){
$("#sysWard").append("<option value="+key+">" + value + "</option>");
});
其实,就是获取分别获取左右的 select 选择框,并分别动态添加 <option>标签。
关键点2:jquery遍历Map:
$.each(obj, function(key,value){
$("#userWard").append("<option value="+key+">" + value + "</option>");
});
如上代码,obj 对象时后台传递的Map对象,jquery 遍历 Map,不能像遍历Array一样,在function中传递i,作为数组索引。而是在function中传递两个参数 key 和 value,分别代表Map对象的key和value值。
关键点3:获取右边select的值:
var depts = "";
$("#userWard").find("option").each(function(i){
depts += $(this).val()+",";
});
depts = depts.substr(0,depts.length-1);
获取右边 select 的值,不能知道获取。有两种方法,方法一:可以把右边框中的值设置全部选中,即将selected 属性设置为true;方法二:就如上文的获取select 选择框的值。
optiontransferselect例子的更多相关文章
- SQLServer地址搜索性能优化例子
这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...
- REGEX例子
作为REGEX的例子,代码9.3显示了一个给定的文件有多少行,具有给定的模式,通过命令行输入(注:有更有效率的方式来实现这个功能,如Unix下的grep命令,在这里只是给出了另一种方式).这个程序像下 ...
- CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子
CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子 本文涉及的VolumeRendering相关的C#代码是从(https://github.com/toolchai ...
- 简单例子了解View的事件分发
什么是事件分发 我们在写自定义ViewGroup或者自定义View的时候经常要处理用户的点击事件,如果我们的View在最底层,他在很多ViewGroup里面,我们如何让我们的点击事件准确传递到View ...
- 简单的例子了解自定义ViewGroup(一)
在Android中,控件可以分为ViewGroup控件与View控件.自定义View控件,我之前的文章已经说过.这次我们主要说一下自定义ViewGroup控件.ViewGroup是作为父控件可以包含多 ...
- kqueue例子
网络服务器通常都使用epoll进行异步IO处理,而开发者通常使用mac,为了方便开发,我把自己的handy库移植到了mac平台上.移植过程中,网上居然没有搜到kqueue的使用例子,让我惊讶不已.为了 ...
- 今天有群友不是很清楚htm直接存数据库的危害,我简单举个例子
通过这个案例就知道为什么不要把原生的html放数据库了 常见的几种转码 常用的几种显示方法 只有原生html和最下面一种弹框了,变成了持久xss 如果是Ajax的方式,请用@Ajax.JavaS ...
- ElasticSearch 5学习(5)——第一个例子(很实用)
想要知道ElasticSearch是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...
随机推荐
- python class对象转换成json/字典
# -*- encoding: UTF-8 -*- class Student: name = '' age = 0 def __init__(self, name, age): self.name ...
- https协议了解,以及相关协议的解析
HTTPS简介 HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版. ...
- hive中的一种假NULL现象
使用hive时,我们偶尔会遇到这样的问题,当你将结果输出到屏幕时,查出的数据往往显示为null,但是当你将结果输出到文本时,却显示为空(即未填充),这是为什么呢? 在hive中有一种假NULL,它看起 ...
- 三维网格形变算法(Gradient-Based Deformation)
将三角网格上的顶点坐标(x,y,z)看作3个独立的标量场,那么网格上每个三角片都存在3个独立的梯度场.该梯度场是网格的微分属性,相当于网格的特征,在形变过程中随控制点集的移动而变化.那么当用户拖拽网格 ...
- 一个优秀的Unity3d开发者必备的几种设计模式
Unity脚本编程 众所周知,unity的编程属于脚本化,脚本没有一个具体的概念跟架构, 导致在项目过程中,经常出现哪里需要实现什么功能,就随便添加脚本, 结果,就造成了一片混乱,不好管理. 更有甚者 ...
- SQL2012连接字符串
安装了sqlserver2012数据库,测试一包代码,搜索网上的方法,死活连接不上,最后偶然测试通过,居然是连接字符串的问题. “如果开发软件的时候是在局域网或者是在本机,并且数据库不在远程计算机上面 ...
- 使用tcp_probe时最初没有输出,先卸载后加载模块之后就有了。
刚才尝试使用tcp_probe来查看tcp的窗口的变化,最初按照tcpprobe | The Linux Foundation的步骤进行设置,但是iperf之后tcp_probe并没有输出结果.按照t ...
- 夯实基础之php学习-1基础篇
1,单引号和双引号的区别 单引号表示字符串,双引号能解析字符串中的变量,所以,如果没有变量,尽量用单引号,加快解析速度 当字符串需要单引号或者双引号的时候,可以用转义字符代替 2,类型转换 通过(bo ...
- php配置rewrite模块
转 (1) 启用rewrite模块,在默认情况下,没有启用 修改httpd.conf文件 #启动rewrite模块 LoadModule rewrite_module modules/mod_r ...
- windows 10磁盘占用100%解决方案
可以试试在 控制面板–管理工具–服务– HomeGroup Listener和HomeGroup Provider禁用. (这2项服务是家庭组共享用的,一般我们也不会去共享什么的.) 效果:我的磁盘是 ...