删除数据时,需要通过JS函数来传递参数删除。
步骤如下:
① 在raq文件中添加一列:操作-删除
② 在删除单元格设置超链接
"javascript:delData_jade('econrespList.jsp','ECONRESP','UUID','"+A3+"')"
第一个参数是执行删除语句后跳转的页面
第二个参数是某一张数据库表
第三个参数是数据库表的某一个字段
第四个参数是某一个字段的值 在页面中 便是A3单元格的数据了
超链接:设置超链接页面/超链接函数
超链接窗口:若是设置为_self则为在本窗口跳转/设置为_blank则为在新窗口中打开
③ 在包含[引用]该raq文件的页面中定义该JS函数,设置处理页面
<script language="javascript">
function delData_jade(refreshUrl,table,column,value){
if( table==null || table=='' ){
alert("删除数据表为空,请联系系统管理员");
return;
}
if( refreshUrl==null || refreshUrl==''){
alert("刷新url为空,请联系系统管理员");
return;
}
if( column==null || column==''){
alert("无法删除数据,请联系系统管理员");
return;
}
if( value==null || value==''){
alert("当前页面无数据删除!");
return;
}
if( confirm('确认删除吗?') ){
window.location.href = "/newmodules/pages/reportJsp/deleteusejs.jsp?refreshUrl="+refreshUrl+"&table="+table+"&column="+column+"&value="+value;
}
}
</script>
④ 编写处理页面deleteusejs.jsp【含JDBC】处理删除操作
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.io.*"%>
<%@ page import="java.net.*"%>
<%@ page import="java.util.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<%@ page import="javax.naming.*,java.sql.*" %>
<%@ page import="com.runqian.report4.usermodel.*"%>
<%
//获取各参数值
String tableName1=request.getParameter("table");
String colmn1=request.getParameter("column");
String value1=(String)request.getParameter("value");
String refreshUrl = request.getParameter("refreshUrl");
Connection con = null;
Statement stmt = null;
try{
//获取context对象
com.runqian.report4.usermodel.Context ct = new com.runqian.report4.usermodel.Context();
con = ct.getConnectionFactory( ct.getDefDataSourceName() ).getConnection();
stmt = con.createStatement();
if((tableName1!=null || tableName1!="") && (colmn1!=null || colmn1!="" ) && ( value1!=null || value1!="") ){
//定义删除sql语句
String sql= "delete from "+tableName1+" where "+colmn1+"="+value1;
//执行sql语句
stmt.executeUpdate(sql);
}
//提交
con.commit();
//重定向url
response.sendRedirect(refreshUrl);
}catch(Exception e){
e.printStackTrace();
}finally{
//关闭流
if( stmt != null ) stmt.close();
if( con != null ) con.close();
}
%>