续费批量删除

来源:互联网 发布:大连理工大学网络 编辑:程序博客网 时间:2024/04/27 03:40
 
1、通过javascript实现全选和反选的三种方法。
 
var SelectAllFlag = false;
 
function goToForAllSelect(){
 var doc = document.form1;
 var l=doc.sel.length
 if(l==null)
 {
 l=1;
 }
 
 if(l==1){
   if(!SelectAllFlag){
     doc.sel.checked = true;
   }else{
   doc.sel.checked = false;
   }
 }else{
   for(i = 0; i < l; i++){
    if(!SelectAllFlag){
     doc.sel[i].checked = true;
    }else{
     doc.sel[i].checked = false;
     }
 
   }
 
 }
 if(!SelectAllFlag){
 SelectAllFlag = true;
 doc.quan.value=" 反 选 ";
 }else{
 SelectAllFlag = false;
 doc.quan.value=" 全 选 ";
 
 }
 
}
复选框
<input name="sel" type="checkbox" class="noborder" value="<%=domainName%>">
调用javascript方法
<input type="button" name="quan" value=" 全 选 " onClick="goToForAllSelect()">
 
实现效果:如图:
解释:l==1时,实现的是单选,doc.sel.checked = true;这个是选上,doc.sel.checked = false;这个是没选上。
      for循环里,实现的是全选。此种情况是:全选和反选是一个按钮。
 
 
   /*全选*/
       function selectAll() 
       { 
       var arrObj = document.all; 
       for(var i = 0; i < arrObj.length;i++) 
       { 
 
                               if(typeof arrObj[i].type != "undefined" && arrObj[i].type=='checkbox') arrObj[i].checked =true; 
       } 
       } 
        /*反选*/
    function CheckOthers(checkBoxName)
{
if(checkBoxName==undefined){
       return false;
}
var   checkBoxList=checkBoxName;
for(i=0;i<checkBoxList.length;i++)  
 {
       if(checkBoxList[i].checked==true){
              checkBoxList[i].checked=false;
       }
       else
       {
              checkBoxList[i].checked=true;
       }
 }
}
复选框
<input name="listt" type="checkbox" class="noborder" value="<%=DOM_BUSINESS_ID%>">
调用javascript方法
<input type="button" name="go" value="全选" onClick="selectAll()">
<input type="button" name="Submit9" value="反选" onClick="CheckOthers(document.form1.listt);">
注意:反选时,往javascript方法里,传递的参数是一个数组。
 
实现效果:如图:
解释:for循环里,当i=0时,实现的就是单选。点击“反选”时,传递给javascript的参数是一个数组,看这段
      javascript的意思就是,把选上的和没选上的做了一个颠倒,javascript还是有点看不太明白!
注:undefined是未明确定义的意思。
 
/*全选*/
function checkall(s)
{
    var a = document.getElementsByName(s);
    var n = a.length;
    for (var i=0; i<n; i++)
    a[i].checked = true;
}
/*反选*/
function checkother(s)
{
       var a = document.getElementsByName(s);
       var n = a.length;
       for (var i=0; i<n; i++)
       {
              if(a[i].checked == true)
              {
                     a[i].checked = false;
              }
              else
              {
                     a[i].checked = true;
              }
       }
}
复选框
<input name="Stat" type="checkbox" class="noborder" value="checkbox" <%=sa%> onClick="statchange('<%=username%>');">
调用javascript方法
<input name="Submit2" type="button" class="button" value="全 选" onClick="checkall('selet');">
<input name="Submit3" type="button" class="button" value="反 选" onClick="checkother('selet');">
注:不知道传递的selet这个参数是什么意思,但这也是实现全选和反选的一种方式,反选的道理和上面的一样,就是如果选上了,就把
    它变为false,不选,如果没选上的,就把它变为true,选上。
2、通过javascript实现批量删除的两种方法。
 
function del()
{
       var flag = "false";
       var str = "";
       if(document.form1.sel==undefined)
       {
              alert("您没有要操作的信息!");
              return false;
       }
       else
       {
              if(document.form1.sel.length == undefined)
              {
                     if(document.form1.sel.checked==false)
                     {
                            alert("请选择要操作的信息!");
                            return false;
                     }
                     else
                     {
               document.form1.action = "batchDelete.do?method=dis&arry="+document.form1.sel.value;
              document.form1.submit();
                     }    
              }
              else
              {
             
                     for(var i=0;i<document.form1.sel.length;i++)
                     {    
                    
                            if(document.form1.sel[i].checked == true)
                            {
                                   if(str=="")
                                   {
                                          str = document.form1.sel[i].value;
                                   }
                                   else
                                   {
                                          str = str+","+document.form1.sel[i].value;
                                   }
                                   flag = "true";
                            }
                     }
                     if(flag =="false")
                     {
                            alert("请选择要操作的信息!");
                            return false;
                     }
               document.form1.action = "batchDelete.do?method=dis&arry="+str;
              document.form1.submit();
              }
       }
}
调用javascript的方法
<input type="button" name="go3" value="批量删除" onclick="del()">
 
解释: document.form1.action = "batchDelete.do?method=dis&arry="+document.form1.sel.value;这个地方传递的是
单选的参数,即给要调用的后台Action里的方法,传递的参数,用javascript传的。
       document.form1.action = "batchDelete.do?method=dis&arry="+str;这个传递的是多选的参数,这个参数是一个
字符串数组,后台根据这个数组,进行批量删除。
 
 
function dis(str)
{
       var check_length = document.form1.elements[val].length;
               var i_count=0
               var list = new Array();
               var str = "";
               for(var i=0;i<check_length;i++)
               {
                        if (document.form1.elements[val](i).checked)
                        {
                               i_count=i_count+1;
                               var u = document.form1.elements[val](i).value;
                               str = str+u+",";                        
                        }
               }
               if(i_count==0)
               {
                            alert('请选择您要处理的数据');
                            return false;
               }
               document.form1.action = "batchDelete.do?method=dis&arry="+str;
              document.form1.submit();
}
复选框
<input name="Stat" type="checkbox" class="noborder" value="checkbox" <%=sa%> onClick="statchange('<%=username%>');">
调用javascript方法
<input name="Submit4" type="button" class="button" value="通 过" onClick="tongguo('selet')">
 
注:如果这个javascript方法不好用,可以仿照上面的写法,把elements[val](i)改为sel[i]就可以了。
 
 
3、用隐藏域向后台传递参数。
<input type=hidden name=comName value="<%=comName%>">
如果你想传递参数的同时,还调用Action里的方法,就用javascript传递参数。
如果只是后台Action里的某个方法,需要这个参数,就没必要用javascript传,直接用一个input隐藏域传,就可以了。
 
注:凡是表单里传过的数据或javascript传的参数或input隐藏域传的参数,在Action里都用String comName = request.getParameter("comName");获得即可,或者用form获得。
    不能用request.getAttribute("comId");这种方式获得,其实也是获得不到的。因为只有你request.setAttribute();了,才能get到。
 
 
4、关于页面转向的问题。
结果:如果dbr为空,给出一个信息提示,“请先填写续费合同”。
      我刚开始的判断方法:if(dbr==null),转向另一个页面,但判断之后,发现if里的转向根本就没有实现。原因:dbr本身就不为空,因为在后台打印出的dbr都是{}这种情况,
      这个大{}内,输出的就是dbr所包含的元素信息,即使是为空的时候,也会输出一个{},所以,页面没有进行跳转。
      之后用if(dbr.isEmpty)判断,页面成功跳转了。
注:dbr是数据库一条记录的封装对象,它继承了properties这个类,properties继承了java.util.Hashtable这个类,在这个类里有一个,isEmpty()方法,返回值是布尔类型的。
注:判断一个对象的元素是否为空,可以用dbr==null,但也不要忘了dbr.isEmpty方法。
 
 
5、日历控件的调用:
引入日历控件
<SCRIPT language=javascript src="<%=request.getContextPath() %>/script/calendar.js"></SCRIPT>
 
当你选择时间时,把你所选择的时间,传递给form。即调用showCal('form1','deleteDate')把deleteDate传递给struts的ActionForm。
<td height="35" align="right" >域名删除时间
   <input name="deleteDate" type="text" size="12" value="<%=deleteDateWhere%>" readonly>
   <img src="<%=request.getContextPath() %>/images/datetime.gif" width="16" height="16" onClick="showCal('form1','deleteDate');">
</td>
 
 
6、javascript错误的显示:
如图: