续费批量删除
来源:互联网 发布:大连理工大学网络 编辑:程序博客网 时间: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错误的显示:
如图:
- 续费批量删除
- 费控测试数据删除方法
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 批量删除
- 系统设计生命周期文档
- window.XMLHttpRequest 详细介绍
- 通过串口实时接收短消息
- ajax扩展控件(2)
- 凯帝阿的手相讲座连载--1(转)
- 续费批量删除
- j2ee
- ajax扩展空间(3)
- Hibernate对自定义类型UserType的用法
- 利用 Lotus Connections API 制作桌面应用
- 将选定的 OmniFind 分析结果存储到关系数据库中以便进行报告和数据挖掘
- 一位软件工程师的6年总结(转载)
- 今天看"精通PHP+MySQL应用开发"一个例子遇到的问题
- ajax扩展控件(4)