jquery flexigrid for java增删查改完整示例--前台

惠泳
2023-12-01
 

没有时间整一个只带flexigrid插件的示例,有时间了,再好好给整理出来,在这个前台里,增删查改全部都在这个页面操作了,采用DIV弹窗的方式,这种方式写前台代码有点头疼,以后再改进改进,把页面分开比较好.

前台页面代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.fckeditor.net" prefix="FCK" %>
<%
String path = request.getContextPath();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="<%=path %>/skins/blue/css/public.css" />
<link type="text/css" rel="stylesheet" href="<%=path %>/skins/blue/css/jquerydivbox.css" />
<link rel="stylesheet" type="text/css" href="<%=path %>/skins/blue/css/flexigrid/flexigrid.css" />
<script type="text/javascript" src="<%=path %>/skins/blue/common/jquery/jquery.js"></script>
<script type="text/javascript" src="<%=path %>/skins/blue/common/jquery/flexigrid.js"></script>
<script type="text/javascript" src="<%=path %>/skins/blue/common/jquery/jquery-ui-personalized.js"></script>
<script type="text/javascript" src="<%=path %>/skins/blue/common/jquery/jquery.blockUI.js"></script>
<script type="text/javascript" src="<%=path %>/skins/blue/common/calendar/wdatePicker.js"></script>
<script type="text/javascript" src="<%=path %>/skins/blue/common/jquery/jquery.bgiframe.js"></script>
<script type="text/javascript" src="<%=path %>/skins/blue/js/jquerydivbox.js"></script>
<script type="text/javascript" src="<%=path %>/fckeditor/fckeditor.js"></script>
</head>
<body>
<!-- 查询区开始 -->
<form id="sform">
<table width="100%" class="searchTable">
    <tr>
      <td class="searchTdTitle" colspan="6">论文库管理</td>
    </tr>
    <tr>
      <td class="searchTdText">题名</td>
      <td class="searchTdInput"><input type="text" name="papTitle" id="papTitle" /></td>
      <td class="searchTdText">副标题</td>
      <td class="searchTdInput"><input type="text" name="papTitleS" id="papTitleS" /></td>
      <td class="searchTdText">作者</td>
      <td class="searchTdInput"><input type="text" name="papAuthor" id="papAuthor" /></td>
    </tr>
    <tr>
      <td class="searchTdText">关键词</td>
      <td class="searchTdInput"><input type="text" name="papKeyword" id="papKeyword" /></td>
      <td class="searchTdText">摘要</td>
      <td class="searchTdInput"><input type="text" name="papAbstract" id="papAbstract" /></td>
      <td class="searchTdText">作者单位</td>
      <td class="searchTdInput"><input type="text" name="papDepart" id="papDepart" /></td>
    </tr>
    <tr>
      <td class="searchTdButton" colspan="6"><input type="submit" class="wsbutton" value="查&nbsp;&nbsp;询" onMouseOver="this.className='wsbutton_hover'" onMouseOut="this.className='wsbutton'"></td>
    </tr>
</table>
</form>
<!-- 查询区结束 -->
<!-- 列表区开始 -->
<table id="datalist" style="display: none"></table>
<script type="text/javascript">
$("#datalist").flexigrid({
colModel : [
    {display: '序号', name : 'id', width : 50, sortable : false, align: 'left'},
{display: '题名', name : 'papTitle', width : 150, sortable : true, align: 'left'},
{display: '作者', name : 'papAuthor', width : 100, sortable : true, align: 'left'},
{display: '期刊', name : 'papJourney', width : 100, sortable : true, align: 'left'},
{display: '发表日期', name : 'papPubtime', width : $(window).width()-462, sortable : true, align: 'left'}
],
buttons : [
    {name :'添加',bclass:'add',onpress:action},
    {name :'修改',bclass:'edit',onpress:action},
    {name :'删除',bclass:'delete',onpress:action},
    {separator : true}
],
url: '<%=path%>/blPaper.do?action=findByAll',
method:'POST',//数据传送模式
dataType :'json',//回传数据的类型,可以为xml和json
sortname :"papTitle",//预设指定哪列进行排序
sortorder :"desc",//预设排序的方式
usepager :true,//是否启用分页器
title :'论文库列表',//标题
useRp :true,//使用分页大小选择器
rp :10,//resultsperpage,预设的分页大小
striped:true,//奇偶行颜色相互交叉,不设置默认为true
showTableToggleBtn :true,//显示或关闭隐藏栏位的开启器
width: 'auto',
height :278,//表格高度(注意不能使用100%之类的字符串)
resizable:false,//是否可调整列表窗口大小,不设置默认为true
onSubmit :addFormData,//数据提交时调用的自定义函数
nowrap:true,//是否重叠,true为不启用重叠,flase为启用重叠
procmsg:'资料读取中,请稍后......',//读取时的信息
pagestat:'显示从{from}到{to}条数据,共有{total}条数据',//分页器的显示信息
nomsg:'打不到符合条件的数据'//没有数据时的信息
});

function addFormData() {
var dt = $('#sform').serializeArray();
$("#datalist").flexOptions( {
    params :dt
});
return true;
}

$('#sform').submit( function() {
$('#datalist').flexOptions( {
    newp :1
}).flexReload();
return false;
});

//新增,修改,删除操作
function action(com, grid) {
if (com=='删除') {
    if ($(".trSelected").length > 0) {
      if (confirm('是否删除 ' + $('.trSelected', grid).length + ' 条记录吗?')) {
        var id = "";
        for (var i = 0; i < $('.trSelected', grid).length; i++) {
          if(i<$('.trSelected', grid).length-1){
            id += "id=" + $('.trSelected').eq(i).attr('id').substring(3) + "&";
          }else if(i==$('.trSelected', grid).length-1){
            id += "id=" + $('.trSelected').eq(i).attr('id').substring(3);
          }
        }
        $.blockUI({ message: '<div class="showMsg">正在删除中,请稍等....</div>' });
        $.get("<%=path%>/blPaper.do?action=delete&" + id, function(data, status, Request){
          $(".showMsg").html(data);
        })
      }
    } else {
      alert("请选择某行删除!");
    }
} else if (com=='添加') {
    //新增弹窗操作
    $.jquerydivboxs.open('#addbox',{width:800,height:450,title:'论文添加'});
} else if (com=='修改') {
    //修改弹窗操作
    if($('.trSelected', grid).length==1){
      var id='0';
      for (var i = 0; i < $('.trSelected', grid).length; i++) {
        id=$('.trSelected').eq(i).attr('id').substring(3)
      }
      var url="<%=path%>/blPaper.do?action=findById&id="+id;
      $.getJSON(
        url,
        function(data){
          $("#papIdEdit").attr("value", data.papId);
          $("#papTitleEdit").attr("value", data.papTitle);
          $("#papTitleSEdit").attr("value", data.papTitleS);
          if(data.papTop==1){
            $('input[name=papTopEdit]').get(0).checked = true;
          }else if(data.papTop==0){
            $('input[name=papTopEdit]').get(1).checked = true;
          }
          if(data.papPublish==1){
            $('input[name=papPublishEdit]').get(0).checked = true;
          }else if(data.papPublish==0){
            $('input[name=papPublishEdit]').get(1).checked = true;
          }
          if(data.papDownload==1){
            $('input[name=papDownloadEdit]').get(0).checked = true;
          }else if(data.papDownload==0){
            $('input[name=papDownloadEdit]').get(1).checked = true;
          }
          FCKeditorAPI.GetInstance('papTextEdit').SetHTML(data.papText);
        }
      );
      $.jquerydivboxs.open('#editbox',{width:800,height:450,title:'论文修改'});
    }else{
      alert("请只选择一行!");
    }
}
}

//新增操作
function insertAction(){
var papTitle=$("#papTitleAdd").val();
var papTitleS=$("#papTitleSAdd").val();
var papText=FCKeditorAPI.GetInstance("papTextAdd").EditorDocument.body.innerHTML;
var papTop=$("input[name='papTopAdd']:checked").val();
var papPublish=$("input[name='papPublishAdd']:checked").val();
var papDownload=$("input[name='papDownloadAdd']:checked").val();
var sendData="papTitle="+ encodeURIComponent(papTitle)+"&papTitleS="+encodeURIComponent(papTitleS);
sendData=sendData+"&papAuthor="+encodeURIComponent(papAuthor)+"&papAuthorF="+encodeURIComponent(papAuthorF);
sendData=sendData+"&papDepart="+encodeURIComponent(papDepart)+"&papKeyword="+encodeURIComponent(papKeyword);
sendData=sendData+"&papAbstract="+encodeURIComponent(papAbstract)+"&papPubtime="+encodeURIComponent(papPubtime);
sendData=sendData+"&papVolum="+encodeURIComponent(papVolum)+"&papJourney="+encodeURIComponent(papJourney);
sendData=sendData+"&papPages="+encodeURIComponent(papPages)+"&papSupport="+encodeURIComponent(papSupport);
sendData=sendData+"&papText="+encodeURIComponent(papText)+"&papTop="+encodeURIComponent(papTop);
sendData=sendData+"&papPublish="+encodeURIComponent(papPublish)+"&papDownload="+encodeURIComponent(papDownload);
$.blockUI({ message: "<div class='showMsg'>数据添加中,请稍后...</div> "});
$.ajax({
    url: "<%=path%>/blPaper.do?action=add",
    type:'post', //数据发送方式
    dataType:'html', //接受数据格式
    data: sendData ,
    success: function(data){ $(".showMsg").html(data); }
});
}

//修改操作
function updateAction(){
var papId=$("#papIdEdit").val();
var papAddman=$("#papAddmanEdit").val();
var papAddtime=$('#papAddtimeEdit').val();
var papTitle=$("#papTitleEdit").val();
var papTitleS=$("#papTitleSEdit").val();
var papText=FCKeditorAPI.GetInstance("papTextEdit").EditorDocument.body.innerHTML;
var papTop=$("input[name='papTopEdit']:checked").val();
var papPublish=$("input[name='papPublishEdit']:checked").val();
var papDownload=$("input[name='papDownloadEdit']:checked").val();
var sendData="papId="+ encodeURIComponent(papId)+"&papTitle="+ encodeURIComponent(papTitle)+"&papTitleS="+encodeURIComponent(papTitleS);
sendData=sendData+"&papAuthor="+encodeURIComponent(papAuthor)+"&papAuthorF="+encodeURIComponent(papAuthorF);
sendData=sendData+"&papDepart="+encodeURIComponent(papDepart)+"&papKeyword="+encodeURIComponent(papKeyword);
sendData=sendData+"&papAbstract="+encodeURIComponent(papAbstract)+"&papPubtime="+encodeURIComponent(papPubtime);
sendData=sendData+"&papVolum="+encodeURIComponent(papVolum)+"&papJourney="+encodeURIComponent(papJourney);
sendData=sendData+"&papPages="+encodeURIComponent(papPages)+"&papSupport="+encodeURIComponent(papSupport);
sendData=sendData+"&papText="+encodeURIComponent(papText)+"&papTop="+encodeURIComponent(papTop);
sendData=sendData+"&papPublish="+encodeURIComponent(papPublish)+"&papDownload="+encodeURIComponent(papDownload);
sendData=sendData+"&papAddman="+encodeURIComponent(papAddman)+"&papAddtime="+encodeURIComponent(papAddtime);
$.blockUI({ message: "<div class='showMsg'>数据修改中,请稍后...</div> "});
$.ajax({
    url: "<%=path%>/blPaper.do?action=update",
    type:'post', //数据发送方式
    dataType:'html', //接受数据格式
    data: sendData ,
    success: function(data){ $(".showMsg").html(data); }
});
}

//打开详细页面
function openDetail(id){
$('#detailshow').empty();
$.jquerydivboxs.open('#detailbox',{width:800,height:450,title:'论文详情'});
var url="<%=path%>/blPaper.do?action=findById&id="+id;
$.getJSON(
    url,
    function(data){
      var papTop="";
      var papPublish="";
      var papDownload="";
      if(data.papTop==1){
        papTop="是";
      }else if(data.papTop==0){
        papTop="否";
      }
      if(data.papPublish==1){
        papPublish="是";
      }else if(data.papPublish==0){
        papPublish="否";
      }
      if(data.papDownload==1){
        papDownload="是";
      }else if(data.papDownload==0){
        papDownload="否";
      }
      var html='<div class="newsShow">';
      html+='<table class="divTable" align="center">';
      html+=' <tr>';
      html+='    <td class="divLeftTd">题名</td>';
      html+='    <td colspan="3" class="divRightTd">'+data.papTitle+'</td>';
      html+=' </tr>';
      html+=' <tr>';
      html+='    <td class="divLeftTd">副标题</td>';
      html+='    <td colspan="3" class="divRightTd">'+data.papTitleS+'</td>';
      html+=' </tr>';
      html+=' <tr>';
      html+='    <td class="divLeftTd">全文</td>';
      html+='    <td colspan="3" class="divRightTd">'+data.papText+'</td>';
      html+=' </tr>';
      html+=' <tr>';
      html+='    <td class="divLeftTd">全文附件</td>';
      html+='    <td colspan="3" class="divRightTd"></td>';
      html+=' </tr>';
      html+=' <tr>';
      html+='    <td class="divLeftTd">置顶</td>';
      html+='    <td class="divRightTd">'+papTop+'</td>';
      html+='    <td class="divLeftTd">是否发布</td>';
      html+='    <td class="divRightTd">'+papPublish+'</td>';
      html+=' </tr>';
      html+=' <tr>';
      html+='    <td class="divLeftTd">是否允许下载</td>';
      html+='    <td class="divRightTd">'+papDownload+'</td>';
      html+='    <td class="divLeftTd">&nbsp;</td>';
      html+='    <td class="divRightTd">&nbsp;</td>';
      html+=' </tr>';
      html+='</table>';
      html+='</div>';
      $('#newsShow').append($(html));
    }
);
}
</script>
<!-- 列表区结束 -->
<!--新增页面DIV窗口开始-->
<div id="addbox" style="display:none">
<form method="post">
    <table class="divTable" align="center">
      <tr>
    <td class="divTdText">题名</td>
   <td class="divTdInput" colspan="3"><input type="text" name="papTitleAdd" id="papTitleAdd" style="width:536px;" /></td>
      </tr>
      <tr>
        <td class="divTdText">副标题</td>
        <td class="divTdInput" colspan="3"><input type="text" name="papTitleSAdd" id="papTitleSAdd" style="width:536px;" /></td>
      </tr>
      <tr>
      <td class="divTdText">作者</td>
   <td class="divTdInput"><input type="text" name="papAuthorAdd" id="papAuthorAdd" /></td>
        <td class="divTdText">第一作者</td>
        <td class="divTdInput"><input type="text" name="papAuthorFAdd" id="papAuthorFAdd" /></td>
       </tr>
      <tr>
        <td class="divTdText">全文</td>
        <td class="divTdInput" colspan="3">
    <FCK:editor instanceName="papTextAdd">
            <jsp:attribute name="value"></jsp:attribute>
          </FCK:editor>
        </td>
      </tr>
      <tr>
        <td class="divTdText">全文附件</td>
        <td class="divTdInput" colspan="3"><input type="button" class="wsbutton" value="附件上传" onMouseOver="this.className='wsbutton_hover'" onMouseOut="this.className='wsbutton'" οnclick="$.jquerydivboxs.open('#fileupload',{width:600,height:200,title:'附件上传'});"></td>
      </tr>
      <tr>
        <td class="divTdText">是否置顶</td>
        <td class="divTdInput">是<input class="radioInput" name="papTopAdd" type="radio" value="1" />否<input class="radioInput" name="papTopAdd" type="radio" value="0" checked /></td>
        <td class="divTdText">是否发布</td>
        <td class="divTdInput">是<input class="radioInput" name="papPublishAdd" type="radio" value="1" checked />否<input class="radioInput" name="papPublishAdd" type="radio" value="0" /></td>
      </tr>
      <tr>
      <td class="divTdText">是否允许下载</td>
        <td class="divTdInput">是<input class="radioInput" name="papDownloadAdd" type="radio" value="1" checked />否<input class="radioInput" name="papDownloadAdd" type="radio" value="0" /></td>
        <td class="divTdText"></td>
        <td class="divTdInput"></td>
      </tr>
      <tr>
        <td class="divTdButton" align="center" colspan="4">
          <input type="button" class="dialog-ok" value="保&nbsp;&nbsp;存" onMouseOver="this.className='wsbutton_hover'" onMouseOut="this.className='wsbutton'" onClick="insertAction()">
          <input type="button" class="dialog-cancel" value="取&nbsp;&nbsp;消" onMouseOver="this.className='wsbutton_hover'" onMouseOut="this.className='wsbutton'">
        </td>
      </tr>
    </table>
</form>
</div>
<!--新增页面DIV窗口结束-->
<!--修改页面DIV窗口开始-->
<div id="editbox" style="display:none">
<form method="post">
    <input type="hidden" name="papIdEdit" id="papIdEdit" />
    <input type="hidden" name="papAddmanEdit" id="papAddmanEdit" />
    <input type="hidden" name="papAddtimeEdit" id="papAddtimeEdit" />
    <table class="divTable" align="center">
      <tr>
    <td class="divTdText">题名</td>
   <td class="divTdInput" colspan="3"><input type="text" name="papTitleEdit" id="papTitleEdit" style="width:536px;" /></td>
      </tr>
      <tr>
        <td class="divTdText">副标题</td>
        <td class="divTdInput" colspan="3"><input type="text" name="papTitleSEdit" id="papTitleSEdit" style="width:536px;" /></td>
      </tr>
      <tr>
        <td class="divTdText">全文</td>
        <td class="divTdInput" colspan="3">
    <FCK:editor instanceName="papTextEdit">
            <jsp:attribute name="value"></jsp:attribute>
          </FCK:editor>
        </td>
      </tr>
      <tr>
        <td class="divTdText">全文附件</td>
        <td class="divTdInput" colspan="3"><input type="button" class="wsbutton" value="附件上传" onMouseOver="this.className='wsbutton_hover'" onMouseOut="this.className='wsbutton'" οnclick="$.jquerydivboxs.open('#fileupload',{width:600,height:200,title:'附件上传'});"></td>
      </tr>
      <tr>
        <td class="divTdText">是否置顶</td>
        <td class="divTdInput">是<input class="radioInput" name="papTopEdit" type="radio" value="1" />否<input class="radioInput" name="papTopEdit" type="radio" value="0" /></td>
        <td class="divTdText">是否发布</td>
        <td class="divTdInput">是<input class="radioInput" name="papPublishEdit" type="radio" value="1" />否<input class="radioInput" name="papPublishEdit" type="radio" value="0" /></td>
      </tr>
      <tr>
      <td class="divTdText">是否允许下载</td>
        <td class="divTdInput">是<input class="radioInput" name="papDownloadEdit" type="radio" value="1" />否<input class="radioInput" name="papDownloadEdit" type="radio" value="0" /></td>
        <td class="divTdText"></td>
        <td class="divTdInput"></td>
      </tr>
      <tr>
        <td class="divTdButton" align="center" colspan="4">
          <input type="button" class="dialog-ok" value="保&nbsp;&nbsp;存" onMouseOver="this.className='wsbutton_hover'" onMouseOut="this.className='wsbutton'" onClick="updateAction()">
          <input type="button" class="dialog-cancel" value="取&nbsp;&nbsp;消" onMouseOver="this.className='wsbutton_hover'" onMouseOut="this.className='wsbutton'">
        </td>
      </tr>
    </table>
</form>
</div>
<!--修改页面DIV窗口结束-->
<!--详细页面DIV窗口开始-->
<div id="detailbox" style="display:none">
<div id="newsShow"></div>
</div>
<!--详细页面DIV窗口结束-->
</body>
</html>

后台代码示例,有时间再整出来,这段前台代码里面有的不是flexigrid的,是弹窗DIV和TAB的,可以当个参考,以后有时间了,再把整个前台和后台的代码都发出来

 类似资料: