(车站在线售票系统)复选框全选,批量删除,多条件查询操作

 

 

 

 

 

一丶复选框全选

当点击最顶上的全选/全不选 checkbox时,下面的一列要跟随着

解决方法:用js

function checkAll(){
        //获取(全选/全不选) 复选框的checked值
		var flag=document.getElementById("ckAll").checked;
		//得到所有复选框元素
		var ids=document.getElementsByName("ids");

		for(var i=0;i<ids.length;i++){
			ids[i].checked=flag;
		}
	}

二丶批量删除

    凡是增删改查唯一的一个数据都是依据主键删除的(这很关键),所以我就把复选框的value值 放主键

<input type="checkbox" name="ids" value="tcno=${t.tcno }&begin=${t.begin}&end=${t.end}&">

js代码先这样写看看效果

function delAllProduct(){
		//得到所有复选框
		var str=""
		var ids=document.getElementsByName("ids");
		
		for(var i=0;i<ids.length;i++){
			if(ids[i].checked==true){
				str+=ids[i].value
				
			}
		}
		str=str.substr(0, str.length-1);
		
		alert(str);
	}

结果:当点击批量删除时,主键的信息全部在上面,就可以实现删除了!

批量删除的实现:点击批量删除,触发delAllproduct事件

function delAllProduct(){
		//得到所有复选框
		var str=""
		var ids=document.getElementsByName("ids");
		
		for(var i=0;i<ids.length;i++){
			if(ids[i].checked==true){
				str+=ids[i].value
				
			}
		}
		str=str.substr(0, str.length-1);
		if(str!="")
		location.href="${pageContext.request.contextPath}/deleteAllTickets?"+str;
		
	}

注意:str==null时就不跳转了,否则数据库查询时会出错

web层 servlet代码


	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		String[] tcno = request.getParameterValues("tcno");
		String[] begin=request.getParameterValues("begin");
		String[] end=request.getParameterValues("end");
		
		TicketService ts=new TicketService();
		ts.deleteAllTickets(tcno,begin,end);
		
		request.getRequestDispatcher("/ticketsList").forward(request, response);
	}

数据库层代码

public void deleteAllTickets(String[] tcno, String[] begin, String[] end) throws SQLException {
		QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
		Object[][] params=new Object[tcno.length][];
		for(int i=0;i<params.length;i++){
			params[i]=new Object[]{tcno[i],begin[i],end[i]};
		}
		qr.batch("delete from tickets where tcno=? and begin=? and end=?", params);
		
		
	}

三,多条件查询

(思路)

起始sql语句 select * from tickets where 1=1   (一定要写这个 where 1=1)

因为条件是不确定的,从提交的条件判断是否为null,sql+=“‘你要的条件’”

最后把我的代码附上,因为我tickets的javabean 附带了一个car的javabean的引用,所以用了自定义结果类型resultSetHandler,代码会稍显多.

public List<Tickets> findTicketByManyCondition(String begin, String end, String concumerType, String maxprice,
			String minprice, String time) throws SQLException {
		// TODO Auto-generated method stub
		QueryRunner qr = new QueryRunner(C3P0Util.getDataSource());
		List<Object> list=new ArrayList<Object>();
		String sql="select * from tickets t,car c where c.CNo=t.tcno and 1=1";
		if(!"".equals(begin)){
			sql+=" and begin=?";
			list.add(begin);
			
		}
		if(!"".equals(end)){
			sql+=" and end=?";
			list.add(end);
		}
		if(!"".equals(concumerType)){
			sql+=" and concumerType=?";
			list.add(concumerType);
		}
		if(!"".equals(minprice)){
			sql+=" and tprice>?";
			list.add(minprice);
		}
		if(!"".equals(maxprice)){
			sql+=" and tprice<?";
			list.add(maxprice);
		}
		if(!"".equals(time)){
			sql+=" and beginTime>?";
			list.add(time);
		}
		
		 return qr.query(sql, new ResultSetHandler<List<Tickets>>(){

			@Override
			public List<Tickets> handle(ResultSet rs) throws SQLException {
				
				List<Tickets> list = new ArrayList<Tickets>();
				while(rs.next()){
					Tickets t = new Tickets();
					t.setTcno(rs.getString("tcno"));
					t.setTprice(Double.valueOf(rs.getString("tprice")));
					t.setTnum(Integer.valueOf(rs.getString("tnum")));
					t.setBegin(rs.getString("begin"));
					t.setEnd(rs.getString("end"));
					t.setConcumerType(rs.getString("concumerType"));
					String beginTime = rs.getString("beginTime").substring(0, 19);

					String endTime = rs.getString("endTime").substring(0, 19);

					SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
					try {
						t.setBeginTime(sdf.parse(beginTime));
						t.setEndTime(sdf.parse(endTime));
					} catch (ParseException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}

					Car c = new Car();
					c.setCno(rs.getString("tcno"));
					c.setCtype(rs.getString("Ctype"));
					t.setCar(c);
					list.add(t);
				}
				System.out.println(list.size()+"--------------------");
				return list;
			}
			 
		 },list.toArray());
	}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Axure中,要实现复选框批量全选功能,可以按照以下步骤进行操作: 1. 首先,需要在Axure的页面中创建一个复选框和一个“全选”按钮。可以使用Axure的“复选框”组件,在页面上放置一个复选框控件,并命名为“复选框1”。然后,在页面上放置一个按钮组件,并命名为“全选按钮”。 2. 当“全选按钮”被选中时,需要将所有的复选框都选中。为此,需要在“全选按钮”的交互事件中添加一个交互动作。选择“全选按钮”,在“交互”面板中,点击“添加事件”,选择“选中”→“选中状态”→“复选框1”。这样就可以实现当“全选按钮”被选中时,将“复选框1”设为选中状态。 3. 如果页面上有多个复选框复选框2、复选框3等),希望当“全选按钮”被选中时,所有的复选框都被选中,可以按照上述步骤依次为每个复选框添加交互动作,将它们都设为选中状态。确保每个复选框在对应的交互事件中被选中。 4. 最后,在使用Axure的预览功能预览页面,当点击“全选按钮”时,可以看到所有的复选框都被选中,实现了复选框批量全选功能。 通过以上步骤,可以在Axure中实现复选框批量全选功能。这样在需要批量选中复选框的情况下,用户只需点击一次“全选按钮”,就可以快速实现全选功能,提高了交互效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值