标签:views summary date formdata status 简单 auth tran contex
内容太多需要勾选时,我们需要做翻页,但是翻页要记录之前的页面勾选了哪些,需要借助input来记录。html代码如下:
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
- <%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
- <%@ taglib uri="com.data.web.view.function" prefix="cf"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
-
- </head>
- <body>
- <link rel="stylesheet" href="/assets/js/dataTables/dataTables.responsive.min.css"></link>
- <div id="page-wrapper">
- <div id="page-inner">
- <div class="col-md-12">
- <h1 class="page-head-line"> 参考文献 <button id="btnSave" type="button" class="btn btn-success pull-right" data-loading-text="Saving...">保 存</button></h1>
- <form class="form-inline col-sm-11" id="search_form">
- <input class="form-control" type="hidden" name="plate" value="8">
- </form>
- </div>
-
- <input class="form-control" type="hidden" id=‘checkList‘ >
- <div class="row">
- <div class="col-md-12">
- <div class="panel panel-default">
- <div class="panel-heading">参考文献列表</div>
- <div class="panel-body">
- <div class="table-responsive">
- <table
- class="table table-striped table-bordered responsive table-hover"
- id="table" cellspacing="0" width="100%">
- <thead>
- <tr>
- <th width="8%" class="min-mobile-l">期刊名</th>
- <th width="20%" class="desktop">标题</th>
- <th width="10%" class="min-mobile-l">作者</th>
- <th width="10%" class="min-mobile-l">摘要</th>
- <th width="10%" class="min-mobile-l">引用</th>
- </tr>
- </thead>
- </table>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </body>
- </html>
- <!-- /. WRAPPER -->
- <!-- JS Scripts-->
- <!-- jQuery Js -->
- <script src="/assets/js/jquery-1.10.2.js"></script>
- <!-- Bootstrap Js -->
- <script src="/assets/js/bootstrap.min.js"></script>
- <!-- Metis Menu Js -->
- <script src="/assets/js/jquery.metisMenu.js"></script>
- <!-- CUSTOM SCRIPTS -->
- <script src="/assets/js/custom.js"></script>
-
-
- <!-- Morris Chart Js
- <script src="assets/js/morris/raphael-2.1.0.min.js"></script>
- <script src="assets/js/morris/morris.js"></script>-->
- <!-- Custom Js
- <script src="assets/js/custom-scripts.js"></script>-->
- <!-- DATA TABLE SCRIPTS -->
- <script src="/assets/js/dataTables/jquery.dataTables.js"></script>
- <script src="/assets/js/dataTables/dataTables.bootstrap.js"></script>
- <script src="/plugins/bootstrap-datepicker/js/bootstrap-datepicker.min.js"></script>
- <script src="/plugins/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js"></script>
- <script type="text/javascript">
- $(function(){
-
- var checkedIdsOld = "<c:forEach items="${ancestry.documents}" var="item">${ item.id }|</c:forEach>";
- $("#checkList").val(checkedIdsOld);
-
- refreshTable();
- bindCheckListChange();
- $(‘#btnSave‘).click(function(){
- $(this).button(‘loading‘);
- var allValue = $("#checkList").val();
- allValue = allValue.substring(0, allValue.length - 1);
- allValue = allValue.replace(/[ ]/g, "");
- var checkedIds = allValue.split("|");
- console.log(checkedIds);
- $.postJSON(‘/docAssociate‘,
- checkedIds,
- function(res){
- $(‘#btnSave‘).button(‘reset‘);
- location.href = ‘/test}‘
- if(!res.code){
- alert(‘保存失败‘);
- }
- }
- );
- });
- });
-
-
-
-
-
- function bindCheckListChange() {
- $(‘#table‘).on(‘change‘,‘.checkbox‘,function(){
- var allValue = $("#checkList").val();
- if (typeof($(this).attr("checked")) == "undefined") {
- //改变前是 未选中,则变为选中,把值增加到checkList中
- $(this).attr("checked", ‘true‘);
- if (!contains(allValue, $(this).attr("value"), false)) {
- allValue += $(this).attr("value") + "|";
- $("#checkList").val(allValue);
- console.log(allValue);
- }
- } else {
- //改变前是选中,则变为未选中,把值从checkList中删除
- $(this).removeAttr("checked");
- if (contains(allValue, $(this).attr("value"), false)) {
- var rstr = $(this).attr("value") + "|";
- allValue = allValue.replace(rstr, "");
- $("#checkList").val(allValue);
- console.log(allValue);
- }
- }
- })
- }
-
-
- function refreshTable() {
- $(‘#table‘)
- .DataTable(
- {
- responsive : true,
- lengthChange : false,
- serverSide : true,//分页,取数据等等的都放到服务端去
- stateSave : true,
- searching : false,
- processing : true,//载入数据的时候是否显示“载入中”
- bDestroy : true,
- pageLength : 2,//首次加载的数据条数
- ordering : false,//排序操作在服务端进行,所以可以关了。
- language : {
- processing : "载入中",//处理页面数据的时候的显示
- paginate : {//分页的样式文本内容。
- previous : "上一页",
- next : "下一页",
- first : "第一页",
- last : "最后一页"
- },
- zeroRecords : "没有内容",//table tbody内容为空时,tbody的内容。
- //下面三者构成了总体的左下角的内容。
- info : "第 _PAGE_/_PAGES_页 共 _TOTAL_条记录",//左下角的信息显示,大写的词为关键字。
- infoEmpty : "第 _PAGE_/_PAGES_页 共 _TOTAL_条记录",//筛选为空时左下角的显示。
- infoFiltered : ""//筛选之后的左下角筛选提示(另一个是分页信息显示,在上面的info中已经设置,所以可以不显示),
- },
- "columnDefs" : [ {
- "defaultContent" : "",
- "targets" : "_all"
- } ],
- "ajax" : {//类似jquery的ajax参数,基本都可以用。
- type : "post",//后台指定了方式,默认get,外加datatable默认构造的参数很长,有可能超过get的最大长度。
- url : "/referenceDocument/listData",
- dataSrc : "data",//默认data,也可以写其他的,格式化table的时候取里面的数据
- data : function(d) {//d 是原始的发送给服务器的数据,默认很长。
- var param = {};//因为服务端排序,可以新建一个参数对象
- param.start = d.start;//开始的序号
- param.length = d.length;//要取的数据的
- var formData = $("#search_form")
- .serializeArray();//把form里面的数据序列化成数组
- formData.forEach(function(e) {
- param[e.name] = e.value;
- });
- return param;//自定义需要传递的参数。
- }
- },
- "columns" : [
- {
- "data" : "author",
- "class" : "text-center"
- },
- {
- "data" : "title",
- "class" : "text-center",
-
- },
- {
- "data" : "name",
- "class" : "text-center",
-
- },
- {
- "data" : "summary",
- "class" : "text-center",
- },
- {
-
- "class": "text-center",
- "render": function(data, type, row, position) {
- var allValue = $("#checkList").val();
- allValue = allValue.substring(0, allValue.length - 1);
- allValue = allValue.replace(/[ ]/g, "");
- var checkedIds = allValue.split("|");
- return ‘<input type="checkbox" class="checkbox" value="‘ + row.id + ‘" ‘ + (checkedIds && checkedIds.indexOf(row.id) > -1 ? ‘checked="checked"‘ : ‘‘) + ‘">‘;
- }
- }
- ]
-
- });
- }
-
-
- /**
- *string:原始字符串
- *substr:子字符串
- *isIgnoreCase:忽略大小写
- */
- function contains(string, substr, isIgnoreCase) {
- if (isIgnoreCase) {
- string = string.toLowerCase();
- substr = substr.toLowerCase();
- }
- var startChar = substr.substring(0, 1);
- var strLen = substr.length;
- for (var j = 0; j < string.length - strLen + 1; j++) {
- if (string.charAt(j) == startChar) //如果匹配起始字符,开始查找
- {
- if (string.substring(j, j + strLen) == substr) //如果从j开始的字符与str匹配,那ok
- {
- return true;
- }
- }
- }
- return false;
- }
-
-
- /**
- * like $.getJSON, Load JSON-encoded data from the server using a POST HTTP
- * request.
- */
- $.postJSON = function(url, data, fnSuccess, fnError) {
- $.ajax({
- url: url,
- type: "POST",
- dataType: "json",
- cache: false,
- contentType: "application/json",
- data: JSON.stringify(data),
- success: function(result) {
- fnSuccess && (fnSuccess(result) || 1) || (typeof result.code != ‘undefined‘ && !result.code && tip(result.error || ‘更新失败...‘));
- },
- error: function(err) {
- if (err.status == 401) {
- return tip(err.status + ‘ ‘ + err.statusText + ‘, 当前会话已失效,请去新窗口 <a target="_blank" href="/login?from=‘ + encodeURIComponent(location.href) + ‘">登陆</a> 后继续操作!‘, 60000);
- }
- fnError && (fnError.apply($, Array.prototype.slice.call(arguments)) || 1) || tip(err.status + ‘ ‘ + err.statusText);
- }
- });
- };
- </script>
JS----checked----checked选中和未选中的获取
标签:views summary date formdata status 简单 auth tran contex
原文地址:https://www.cnblogs.com/jpfss/p/9699476.html