删除选中案例详解

在页面上添加了多个checkBox,并且添加了一个删除按钮,当勾选了多个数据时,点击删除选中按钮可以将这些记录删除。

问题:

  1. 怎样控制多选框的全选与全不选。
  2. 怎样控制将选中商品删除

a) 将选中的商品的id传递到服务器端

b) 在服务器端通过QueryRunnerbatch方法根据id值来批量删除。

 

解决全选与全不选

//处理全选与全不选
    function selectAllCk() {

        var flag = document.getElementById("allck").checked; //得到多选框是否被选中了,如果为true,代表选中,如果为false,代表取消。

        var cks = document.getElementsByName("ck");//获取到所有名称叫ck的元素。
        for ( var i = 0; i < cks.length; i++) {

            cks[i].checked = flag;//将所有的name=ck的checkbox的checked值设置为flag.
        }

    }

解决怎样将选中的商品的id传递到服务器端操作。

通过js代码 location.href来完成提交,这种操作,需要我们通过js代码自己来获取请求参数,并拼接出来。

 

//删除选中
    function delSelect() {
        
        var url = "${pageContext.request.contextPath}/delSelect?";
        var cks = document.getElementsByName("ck");//获取到所有名称叫ck的元素。
        for ( var i = 0; i < cks.length; i++) {

            if (cks[i].checked) { //得到选 中的checkbox
                url += "id=" + (cks[i].value) + "&";
            }
        }
        url=url.substring(0,url.length-1);
        
        location.href=url; //这段代码就相当于超连接的href属性。
        
        //document.getElementById("ds").submit();
    }

 

  1. 可以直接将ck这些元素放置在一个表单中,当点击删除选中按钮时,只需要
    //document.getElementById("ds").submit();
  2. 删除操作流程

    1. DelSelectServlet中通过request.getParameterValues()获取到了所有要删除的商品的id.
    2. 调用ProductService,在调用ProductDao中的delSelectById方法来完成删除操作
    3. 通过QueryRunnerbatch方法进行批量删除

    Batch(String, sql,Object[][] parma)

    问题:我们得到的是一个String[]  怎样将数据转换成二维数组。

    假设一维数组 {1,2,3}  arr1

    我们想要的二维数组是 {{1},{2},{3}}  arr2

     

    for(int i=0;i<arr2.length;i++){

    arr2[i][0]=arr1[i]

    }

 

posted on 2016-11-19 17:18  我和Messi五五开  阅读(1421)  评论(1)    收藏  举报