Jquery+bootstrap实现表格行置顶置底上移下移操作详解

最近接到产品的一个需求,它是要对数据排序,实际操作中我们要实现表格行置顶置底上移下移操作。项目框架是GUNS框架。

如下图:

我是怎么用Jquery+bootstrap进行实现这些功能的呢?往下看就知道了。

1.html

@layout("/common/_container.html"){
<div class="row">
    <div class="col-sm-12">
        <div class="ibox float-e-margins">
            <div class="ibox-title">
                <a href="/report">报表管理</a>>><a href="" onclick="getHrefUrl(this)">报表版本</a>>>配置指标
            </div>
            <div class="ibox-content">
                <div class="row row-lg">
                    <div class="col-sm-12">
                        <div class="row">
                            <input type="hidden" id="reportId" value="${reportId}">
                            <input type="hidden" id="verId" value="${verId}">
                            <div class="col-sm-3">
                                <#NameCon id="condition" name="名称" />
                            </div>
                            <div class="col-sm-3">
                                <#button name="搜索" icon="fa-search" clickFun="QuotaVer.search()"/>
                            </div>
                        </div>
                        <div class="hidden-xs" id="QuotaVerTableToolbar" role="group">
                            @if(shiro.hasPermission("/quotaVer/addIndex")){
                            <#button name="添加指标" icon="fa-plus" clickFun="QuotaVer.openAddQuota()"/>
                            @}
                            @if(shiro.hasPermission("/quotaVer/save")){
                            <#button name="保存数据" icon="fa-plus" clickFun="QuotaVer.saveQuotaVer()"/>
                            @}
                        </div>
                        <#table id="QuotaVerTable"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${ctxPath}/static/modular/quotaVer/quotaVer/quotaVer.js"></script>
<script>
    function getHrefUrl(a){
        a.href = "/reportVer?reportId=" + document.getElementById("reportId").value;
    }
</script>
@}

注意:这里使用的是GUNS框架,所以代码风格跟一般的html写法稍有不同。

2.JS代码

{title: '操作', visible: true, align: 'center', valign: 'middle',events: operateEvents,
                formatter: operateFormatter}
function operateFormatter(value, row, index) {
    return [
        '<a class="up" href="javascript:void(0)" title="Up">',
        '<i >上移</i>',
        '</a>  ',
        '<a class="down" href="javascript:void(0)" title="Down">',
        '<i >下移</i>',
        '</a>  ',
        '<a class="del" href="javascript:void(0)" title="Del">',
        '<i >删除</i>',
        '</a>  ',
    ].join('')
}
window.operateEvents = {
    'click .up': function (e, value, row, index) {
        //点击上移
        var $tr = $(this).parents("tr");
        if ($tr.index() == 0){
            Feng.success("首行数据不可上移!");
        }else{
            $tr.fadeOut().fadeIn();

            //交换后台数组数据
            var array = $('#QuotaVerTable').bootstrapTable('getData');
            //行在table中的位置
            var idx = $tr.index();
            //交换元素
            var temp = array[idx];
            array[idx] = array[idx - 1];
            array[idx - 1] = temp;

            $tr.prev().before($tr);
        }
    },
    'click .down': function (e, value, row, index) {
        //点击下移
        var $tr = $(this).parents("tr");
        //获取table所有数据行  QuotaVerTable跟html页面的table id对应
        var len = $('#QuotaVerTable').bootstrapTable('getData').length;
        if ($tr.index() == len - 1) {
            Feng.success("尾行数据不可下移!");
        }else {
            $tr.fadeOut().fadeIn();

            //交换后台数组数据
            var array = $('#QuotaVerTable').bootstrapTable('getData');
            //行在table中的位置
            var idx = $tr.index();
            //交换元素
            var temp = array[idx];
            array[idx] = array[idx + 1];
            array[idx + 1] = temp;

            $tr.next().after($tr);
        }
    }
}

在实现上移下移的同时,做了数据的顺序交换。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • jQuery动态生成Bootstrap表格

    效果图如下所示: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+req

  • bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法

    异步请求 var postData = { "env_name" : new_env_name, "env_url": new_env_url, "env_desc" : new_env_desc }; $.ajax({ type: 'POST', url : '/test_env_add/', data : postData, dataType : 'json', success : function(data){ $('#table_test

  • BootStrap和jQuery相结合实现可编辑表格

    editTable.js 提供编辑表格当前行.添加一行.删除当前行的操作,其中可以设置参数,如: operatePos 用于设置放置操作的列,从0开始,-1表示以最后一列作为放置操作的列:(这里的操作包括 编辑当前行.在当前行下添加一行.删除当前行) handleFirst 设置表格的第一行是否作为操作的对象,true为真,false为假: edit.save.cancel.add.confirm.del 分别设置显示操作的操作名,默认显示"编辑"."保存".&qu

  • 基于Bootstrap使用jQuery实现简单可编辑表格

    editTable.js 提供编辑表格当前行.添加一行.删除当前行的操作,其中可以设置参数,如: operatePos 用于设置放置操作的列,从0开始,-1表示以最后一列作为放置操作的列:(这里的操作包括 编辑当前行.在当前行下添加一行.删除当前行) handleFirst 设置表格的第一行是否作为操作的对象,true为真,false为假: edit.save.cancel.add.confirm.del 分别设置显示操作的操作名,默认显示"编辑"."保存".&qu

  • Jquery+bootstrap实现表格行置顶置底上移下移操作详解

    最近接到产品的一个需求,它是要对数据排序,实际操作中我们要实现表格行置顶置底上移下移操作.项目框架是GUNS框架. 如下图: 我是怎么用Jquery+bootstrap进行实现这些功能的呢?往下看就知道了. 1.html @layout("/common/_container.html"){ <div class="row">     <div class="col-sm-12">         <div clas

  • Java 内置Http Server构建web应用案例详解

    一.概述 使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强劲,深受欢迎,是运行大型Web应用的必备神器. 虽然Java的设计初衷就是用来开发大型应用的,然而有时候我们开发的程序只是简单的小型应用,对于功能的需求和性能的要求并不高, 可能仅仅就几百行甚至几十行代码,这个时候使用tomcat之类的Web服务器去运行就显得有点大材小用了. 比如说只是将数据库中的数据读出来转换成JSON,以Web服务的形式吐给调用方这样

  • JSP中九大内置对象和四种属性范围详解

    JSP中九大内置对象和四种属性范围详解 一般对象需要实例化才可以调用,而JSP的内置对象是不用实例化就可以直接调用的对象. 总共有9个,对应如下表: 序号 对象 类型 1 pageContext javax.servlet.jsp.PageContext 2 request javax.servlet.http.HttpServletRequest 3 response javax.servlet.http.HttpServletResponse 4 session javax.servlet.

  • Python内置函数zip map filter的使用详解

    并行遍历zip zip会取得一个或多个序理为参数,然后返回元组的列表,将这些序列中的并排的元素配成对. L1=[1,2,3,4] L2=[5,6,7,8] L3=zip(L1,L2) print(L3,type(L3)) <zip object at 0x7feb81b17f08> <class 'zip'> zip在python3中是一个可迭代对象,我们可以将其包含在list调用中以例一次性显示所有结果 list(L3) [(1, 5), (2, 6), (3, 7), (4,

  • 关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解

    数据库中为datetime类型,.net读取数据已Json格式发回给前台页面:例如:使用bootstrap表格插件Ⅹ formatter: function (value, row, index) { var date = new Date(parseInt(value.slice(6))); return date.getFullYear() + '-' + parseInt(date.getMonth() + 1) + '-' + date.getDate() + " " + da

  • jQuery中通过ajax调用webservice传递数组参数的问题实例详解

    下面通过实例给大家说明比较直观些,更方便大家了解. 本人的项目中通过jquery.ajax调用webservice. 客户端代码如下: $.ajax({ url: "test/xxx.asmx", type: 'POST', dataType: 'xml', timeout: , data: { name: "zhangsan", tags: ["aa", "bb", "cc"] }, error: fun

  • bootstrap中的 form表单属性role="form"的作用详解

    html 里面的 role 本质上是增强语义性,当现有的HTML标签不能充分表达语义性的时候,就可以借助role来说明.通常这种情况出现在一些自定义的组件上,这样可增强组件的可访问性.可用性和可交互性. role的作用是描述一个非标准的tag的实际作用.比如用div做button,那么设置div 的 role="button",辅助工具就可以认出这实际上是个button 比如, <div role="checkbox" aria-checked="c

  • BootStrap智能表单实战系列(八)表单配置json详解

    本章属于该系列的高级部分,将介绍表单中一些列的配置 1.config列的配置: 主要用于控制布局 :config:{autoLayout:true|'1,2,2,4'} true:根据配置项最里层的数量来自动使用不同的栅格, '1,2,2,4':使用指定的栅格来布局,如果配置的列数不足的情况将使用第一项(n,n 为一项) 2.hides的配置项 hides:[{id:'xxx',value:''}] 此项是可选的,主要用于编辑时存放一些不可见的列(如主键ID的值) 3.eles 表单元素的配置(

  • jQuery中的select操作详解

    下面给大介绍了jquery对select的操作介绍,非常不错,具有内容介绍如下所示: select的html标签如下: <select class="xxx" id="yyy"><option></option>...<option></option></select> 1.设置value为"lll"的option选中 $('#yyy').val("lll"

  • jQuery原理系列-常用Dom操作详解

    1. 事件绑定$(el).bind ie使用attachEvent,其它浏览器使用addEventListener,不同的是ie多了个on前缀,this绑定在window上,需要用call和apply修正this 的指向. if (element.addEventListener) { element.addEventListener(type, handler, useCapture); } else { if (element.attachEvent) { element.attachEve

随机推荐