通用WEB表格增删改操作(附源码)

在Web项目开发过程中,经常会碰到处理表格的维护操作(增加,删除,修改,显示),那么如何来做到通用操作呢?这里提供完整的实现代码,供网友们设计时参考:

列表显示代码:

String tabstyle=StrCharUtil.formatNullStr(request.getParameter("tabstyle"));
if(tabstyle.equals(""))tabstyle="0";
String sql=DBGRIDDESC.SQL_SIMPLEST;
//以下用DBGRID来显示表格
Query q=new Query(sql);
//以下定义DBGRID各个属性字段
//隐藏字段定义
Field hf1=new Field("id1","id1","序号1",true,true,false,0,Field.TYPE_STRING);
Field hf2=new Field("id2","id2","序号2",true,true,false,0,Field.TYPE_STRING);
//显示字段定义
Field vf1=new Field("catename","catename","类别名称",false,true,true,10,Field.TYPE_STRING);
Field vf2=new Field("dt","dt","日期",false,true,true,10,Field.TYPE_DATE);
Field vf3=new Field("num","num","数字",false,true,true,10,Field.TYPE_LONG);
Field vf31=new Field("num1","num1","数字1",false,true,true,10,Field.TYPE_LONG);
Field vf4=new Field("desc1","desc1","描述信息",false,true,true,30,Field.TYPE_STRING);
Field vf5=new Field("color","color","颜色",false,true,true,10,Field.TYPE_COLOR);
//表达式定义
Field ef1=new Field("1+1*2","exp1","表达式1",false,true,true,10,Field.TYPE_LONG);
Field ef2=new Field("3+2","exp2","表达式2",false,true,true,10,Field.TYPE_DATE);
//数据集中加入属性定义
q.addField(new Field[]{hf1,hf2,vf1,vf2,vf3,vf31,vf4,vf5,ef1,ef2});
Dbgrid dg=new Dbgrid(100,"#bdcff7","#d1ddf9","#FFFFFF",false,false,"",q);
if(tabstyle.equals("1"))
dg.setTabStyle(Dbgrid.TABLE_CHECKBOX,new int[]{0},0);
if(tabstyle.equals("2"))
dg.setTabStyle(Dbgrid.TABLE_RADIO,new int[]{0},0);
if(tabstyle.equals("3"))
dg.setTabStyle(Dbgrid.TABLE_LINENUM,new int[]{1},0);
dg.addDefaultColumns();
String res=dg.createGrid();
out.println(res);

如下图所示:


多行在线编辑代码:

String act=StrCharUtil.formatNullStr(request.getParameter("act"));
if(act.equals("")) act="qry";
if(act.equals("save"))
{
 Dbgrid mydg=(Dbgrid)request.getSession().getAttribute("loadgrid");
 mydg.processSave(request);
 response.sendRedirect("lookupEdit.jsp");
}else
{
String sql=DBGRIDDESC.SQL_SIMPLEST;
String lsql=DBGRIDDESC.SQL_LOOKUP;
Query q=new Query(sql);
Query lq=new Query(lsql);
Field ff1=new Field("cate");
Field ff2=new Field("catename");
lq.addField(ff1);lq.addField(ff2);
lq.setName("lq"); 

LookupField lf1=new LookupField("cate","所在分类","lq","cate","catename");
lf1.setLookupDataSet(lq);

Field hf1=new Field("id1","id1","序号1",true,true,false,0,Field.TYPE_STRING);
Field hf2=new Field("id2","id2","序号2",true,true,false,0,Field.TYPE_STRING);

Field vf1=new Field("num","num","数字",false,false,true,20,Field.TYPE_LONG);
Field vf3=new Field("desc1","desc1","描述",false,false,true,50,Field.TYPE_STRING);
CheckField cf1=new CheckField("bln","bln","布尔值",false,false,true,10,Field.TYPE_BOOLEAN,"1","0");

q.addField(new Field[]{hf1,hf2,cf1,lf1,vf1,vf3});
String usql="update DBGRID_ZB set bln=:bln,cate=:cate,num=:num,desc1=:desc1 where id1=:id1 and id2=:id2";
UpdateSQL us=new UpdateSQL(usql);
q.setUpdateObj(us);

Dbgrid dg=new Dbgrid(100,DBGRIDDESC.HEADCOLOR,DBGRIDDESC.GRIDLINECOLOR,DBGRIDDESC.GRIDCOLOR,q);
dg.addDefaultColumns();
String res=dg.createGrid();
request.getSession().setAttribute("loadgrid",dg);
out.println(res);

 效果图:



 附件中有可运行的完整代码,附上MYSQL的示例脚本(见附件)

你可能感兴趣的:(sql,mysql,Web,jsp,脚本)