SSM框架实现前台复选框选中数据,后台实现批量修改删除

2 篇文章 0 订阅

SSM框架实现前台复选框选中数据,后台实现批量修改删除

前端页面

<table id="simple-table"
		class="table table-striped table-bordered table-hover"
		style="margin-top:5px;">
		<thead>
			<tr>
				<th class="center" style="width:35px;"><label class="pos-rel"><input
						type="checkbox" class="ace" id="zcheckbox" /><span class="lbl"></span>
				</label></th>
				<th class="center" style="width:50px;">序号</th>
				<th class="center">租客姓名</th>
				<th class="center">租客手机号</th>
				<th class="center">意向房屋地址</th>
				<th class="center">状态</th>
				<th class="center">负责人编号</th>
				<th class="center">负责人</th>
				<th class="center">带客申请</th>

			</tr>
		</thead>
		<tbody>
			<!-- 开始循环 -->
			<c:choose>
				<c:when test="${not empty alist}">
					<c:forEach items="${alist}" var="list" varStatus="vs">
						<tr>
							<c:if test="${list.state==1 }">
								<td></td>
							</c:if>
							<c:if test="${list.state==0 }">
								<td class='center' style="width: 30px;"><label><input
										type='checkbox' name='ids' id="${list.id }"
										value="${list.state }" class="ace" /><span class="lbl"></span>
								</label>
								</td>
							</c:if>
							<td class='center' style="width: 30px;">${vs.index+1}</td>
							<td class="center">${list.name }</td>
							<td class="center">${list.phone }</td>
							<td class="center">${list.address }</td>
							<c:if test="${list.state==0 }">
								<td class="center">待分配</td>
							</c:if>
							<c:if test="${list.state==1 }">
								<td class="center">已分配</td>
							</c:if>
							<td class="center">${list.user_id }</td>
							<td class="center">${list.username }</td>
							<td class="center"><c:if test="${list.state==0 }">
								<a class="btn btn-xs btn-success" title="编辑"
										onclick="editUser('${list.id}');"> <i
										class="ace-icon fa fa-pencil-square-o bigger-120" title="编辑"></i>
									</a>
								</c:if>
							</td>
							<div class="hidden-md hidden-lg">
								<div class="inline pos-rel">
									<button class="btn btn-minier btn-primary dropdown-toggle"
										data-toggle="dropdown" data-position="auto">
										<i class="ace-icon fa fa-cog icon-only bigger-110"></i>
									</button>

								</div>
							</div>
							</td>
						</tr>

					</c:forEach>

					<c:if test="${QX.cha == 0 }">
						<tr>
							<td colspan="10" class="center">您无权查看</td>
						</tr>
					</c:if>
				</c:when>
				<c:otherwise>
					<tr class="main_info">
						<td colspan="10" class="center">没有相关数据</td>
					</tr>
				</c:otherwise>
			</c:choose>
		</tbody>
	</table>
	<table style="width:100%;">
			<tr>
				<a title="批量修改" class="btn btn-mini btn-danger" onclick="makeAll('确定选中的数据吗?');" >统一分配</a>
				<td style="vertical-align:top;"><div class="pagination" style="float: right;padding-top: 0px;margin-top: 0px;">${page.pageStr}</div>
					</td>
				</tr>
			</table>
	</div>

复选框按钮

$(function() {
//复选框全选控制
var active_class = 'active';
	$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
		var th_checked = this.checked;//checkbox inside "TH" table header
		$(this).closest('table').find('tbody > tr').each(function(){
			var row = this;
			if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
			else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
		});
	});
});

获取选中的内容

function makeAll(msg){
	bootbox.confirm(msg, function(result) {
		if(result) {
			var str = '';
			var emstr = '';
			for(var i=0;i < document.getElementsByName('ids').length;i++)
			{		
				if(document.getElementsByName('ids')[i].value!=1){
				
				  if(document.getElementsByName('ids')[i].checked){
				  	if(str=='') str += document.getElementsByName('ids')[i].value;
				  	else str += ',' + document.getElementsByName('ids')[i].value;
				  
				  	if(emstr=='') emstr += document.getElementsByName('ids')[i].id;
				  	else emstr += ',' + document.getElementsByName('ids')[i].id;
				  	
				  }
				}
			}
			if(str==''){
				bootbox.dialog({
					message: "<span class='bigger-110'>您没有选择任何内容或内容不符!</span>",
					buttons: 			
					{ "button":{ "label":"确定", "className":"btn-sm btn-success"}}
				});
				$("#zcheckbox").tips({
					side:3,
		            msg:'点这里全选',
		            bg:'#AE81FF',
		            time:8
		        });
				
				return;
			}else{
				if(msg == '确定选中的数据吗?'){
				
					 top.jzts();
					 var diag = new top.Dialog();
					 diag.Drag=true;
					 diag.Title ="批量修改";
					 diag.URL = '<%=basePath%>appointment/editAdmin.do?ids='+emstr;
					 diag.Width = 600;
					 diag.Height = 265;
					 diag.CancelEvent = function(){ //关闭事件
						diag.close();
					 };
					 diag.show();

后台代码
批量修改我用的是for循环这样会修改几个数据就执行几条sql语句效率比较低,要提高效率可以在xml里面写一个批量修改的sql语句

/**
	 * 批量修改
	 * @return
	 * @throws Exception
	 */
	@RequestMapping(value="editApp1")
	public ModelAndView editApp1() throws Exception{
		ModelAndView mv=this.getModelAndView();
		PageData pd=this.getPageData();
		//	appointmentService.listEditApp(pd);
		String ids = pd.getString("ids");
		String idss[] = ids.split(",");
		int user_id=Integer.parseInt((String)pd.get("user_id"));
		for(int i=0;i<idss.length;i++){
			System.out.println(idss[i]);
			PageData pd1=new PageData();
			pd1.put("id",idss[i] );
			pd1.put("user_id", user_id);
			appointmentService.editApp(pd1);
		}
		mv.addObject("msg","success");
		mv.setViewName("save_result");
		return mv;
	}

前后台数据交互的万能类

@SuppressWarnings("rawtypes")
public class PageData extends ActEntity<PageData> implements Map {

	private static final long serialVersionUID = 1L;

	private Map map = null;
	private HttpServletRequest request;

	public PageData(HttpServletRequest request) {
		this.request = request;
		
		Map<String, String> returnMap = new HashMap<String, String>();
		String name = "";
		String value = "";
		Map<String, String[]> properties = request.getParameterMap();
		for (Map.Entry<String, String[]> entry : properties.entrySet()) {
			name = entry.getKey();
			Object valueObj = entry.getValue();
			if (null == valueObj) {
				value = "";
			} else if (valueObj instanceof String[]) {
				String[] values = (String[]) valueObj;
				for (int i = 0; i < values.length; i++) {
					value = values[i] + ",";
				}
				value = value.substring(0, value.length() - 1);
			} else {
				value = valueObj.toString();
			}
			returnMap.put(name, value);
		}
		map = returnMap;
	}

	public PageData() {
		map = new HashMap();
	}

	@Override
	public Object get(Object key) {
		Object obj = null;
		if (map.get(key) instanceof Object[]) {
			Object[] arr = (Object[]) map.get(key);
			obj = request == null ? arr : (request.getParameter((String) key) == null ? arr : arr[0]);
		} else {
			obj = map.get(key);
		}
		return obj;
	}

	public String getString(Object key) {
		return get(key) == null ? "" : get(key).toString();
	}

	@SuppressWarnings("unchecked")
	@Override
	public Object put(Object key, Object value) {
		return map.put(key, value);
	}

	@Override
	public Object remove(Object key) {
		return map.remove(key);
	}

	public void clear() {
		map.clear();
	}

	public boolean containsKey(Object key) {
		// TODO Auto-generated method stub
		return map.containsKey(key);
	}

	public boolean containsValue(Object value) {
		// TODO Auto-generated method stub
		return map.containsValue(value);
	}

	public Set entrySet() {
		// TODO Auto-generated method stub
		return map.entrySet();
	}

	public boolean isEmpty() {
		// TODO Auto-generated method stub
		return map.isEmpty();
	}

	public Set keySet() {
		// TODO Auto-generated method stub
		return map.keySet();
	}

	@SuppressWarnings("unchecked")
	public void putAll(Map t) {
		// TODO Auto-generated method stub
		map.putAll(t);
	}

	public int size() {
		// TODO Auto-generated method stub
		return map.size();
	}

	public Collection values() {
		// TODO Auto-generated method stub
		return map.values();
	}
	@Override
	public String toString() {
		return "PageData [map=" + map + ", request=" + request + "]";
	}
}

public abstract class ActEntity<T> implements Serializable {

	private static final long serialVersionUID = 1L;

	protected Activit act; 		// 流程任务对象

	public ActEntity() {
		super();
	}
	
	@JsonIgnore
	public Activit getAct() {
		if (act == null){
			act = new Activit();
		}
		return act;
	}

	public void setAct(Activit act) {
		this.act = act;
	}

	/**
	 * 获取流程实例ID
	 * @return
	 */
	public String getProcInsId() {
		return this.getAct().getProcInsId();
	}

	/**
	 * 设置流程实例ID
	 * @param procInsId
	 */
	public void setProcInsId(String procInsId) {
		this.getAct().setProcInsId(procInsId);
	}
}	
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值