热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EasyUIdatagrid实现翻页保持选中状态

转载自:http:blog.csdn.netjunlong750articledetails514708341、首先设置datagrid属性的idField主键,这里假如为id,若idFi

转载自:http://blog.csdn.net/junlong750/article/details/51470834

1、首先设置datagrid属性的idField主键,这里假如为id,若idField为其他的,记住下面的代码里的 id也要做相应的修改

2、建立一个全局的Javascript数组var checkedItems = [],用来存放选中checkbox的值。

3、核心方法,addcheckItem()、removeAllItem(rows)、removeSingleItem(rowIndex, rowData)当选中或者取消checkbox时触发

    用来将checkbox的主键值保存在checkedItems数组,或者从数组中删除对应的id值,findCheckedItem(ID)这个函数用来查找数组中

  是否存在checkbox的值,存在则返回id值,不存在则返回-1.

4、什么时候调用这些方法呢?分别在datagrid的 onCheckAll: addcheckItem,onCheck: addcheckItem,onUncheckAll: removeAllItem,onUncheck: removeSingleItem 这四个事件中

  调用对应的方法。

5、翻页后如何给checkbox赋值呢?关键就在这里,datagrid重写了$.fn.datagrid.defaults.view的onAfterRender事件,

  因此在datagrid的view事件里绑定这个函数就OK了。onAfterRender事件是当easyui的元素渲染完毕后执行的事件,在这里会调用手写的ischeckItem函数来实现对checkbox的赋值!

6、代码展示

[html] view plain copy print?在CODE上查看代码片派生到我的代码片
  1. <%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>  
  2. <%@ include file="/pageHead.jsp" %>  
  3. <%@page import="com.iss.itreasury.common.utils.SysConstant"%>  
  4.   
  5. <script type="text/Javascript">  
  6.     document.onkeydown = function(e) {  
  7.     var e = e || event;  
  8.     if(e.keyCode == 13) {  
  9.     setTimeout(function(){  
  10.                $('#success').val("");  
  11.             },0);  
  12.             e.preventDefault ? e.preventDefault() : (e.returnValue = false);  
  13.         }  
  14.     }     
  15.       
  16.       
  17.       
  18.     $(function(){     
  19.         $("#hid").hide();   
  20.           
  21.         $("#allpeople").change(function () {    
  22.             var aaa = $("#allpeople  option:selected").text();    
  23.             if(aaa == "所有人"){  
  24.                 //$('#dg2').datagrid('clearSelections');  
  25.                 $('#dg2').datagrid('reload');  
  26.                 $("#hid").hide();   
  27.             }else{  
  28.                 //$('#dg2').datagrid('clearSelections');  
  29.                 $('#dg2').datagrid('reload');  
  30.                 $("#hid").show();   
  31.             }  
  32.         });  
  33.           
  34.         var fileview = $.extend({}, $.fn.datagrid.defaults.view, { onAfterRender: function (target) { ischeckItem(); } });  
  35.   
  36.         var checkedItems = [];  
  37.         function ischeckItem() {  
  38.             for (var i = 0; i < checkedItems.length; i++) {  
  39.                 $('#dg2').datagrid('selectRecord', checkedItems[i]); //根据id选中行   
  40.             }  
  41.         }  
  42.           
  43.         function findCheckedItem(ID) {  
  44.             for (var i = 0; i < checkedItems.length; i++) {  
  45.                 if (checkedItems[i] == ID) return i;  
  46.             }  
  47.             return -1;  
  48.         }  
  49.   
  50.          function addcheckItem() {  
  51.             var row = $('#dg2').datagrid('getChecked');  
  52.             for (var i = 0; i < row.length; i++) {  
  53.                 if (findCheckedItem(row[i].id) == -1) {  
  54.                     checkedItems.push(row[i].id);  
  55.                 }  
  56.             }  
  57.          }  
  58.          function removeAllItem(rows) {  
  59.   
  60.             for (var i = 0; i < rows.length; i++) {  
  61.                 var k = findCheckedItem(rows[i].id);  
  62.                 if (k != -1) {  
  63.                     checkedItems.splice(i, 1);  
  64.                 }  
  65.             }  
  66.          }  
  67.          function removeSingleItem(rowIndex, rowData) {  
  68.             var k = findCheckedItem(rowData.id);  
  69.             if (k != -1) {  
  70.                 checkedItems.splice(k, 1);  
  71.             }  
  72.          }  
  73.           
  74.         $('#dg2').datagrid({  
  75.             idField: 'id',   
  76.             view: fileview,  
  77.             method: 'post',  
  78.             //title: '用户列表',  
  79.             width: '1000',  
  80.             height: '325',  
  81.             fitColumns: true,  
  82.             singleSelect: true,  
  83.             pagination: true,  
  84.             url:'${systemctx}/userManager/userQuery.json',  
  85.             pageSize: 15,  
  86.             pageList: [ 20, 50, 100],  
  87.             queryParams: formToJson("pageform"),  
  88.             rownumbers:true,  
  89.             singleSelect:false,  
  90.             columns:[[  
  91.                 {field:'id',title:' ',checkbox:true,align:'center'},  
  92.                 {field:'username',title:'用户名',width:'15%'},  
  93.                 {field:'realname',title:'真实姓名',width:'15%'},  
  94.                 {field:'roleName',title:'角色',width:'15%'},  
  95.                 {field:'mobilePhone',title:'移动电话',width:'15%',align:'center'},  
  96.                 {field:'email',title:'电子邮件',width:'20%'},  
  97.                 {field:'sexName',title:'性别',width:'5%',align:'center'}  
  98.             ]],  
  99.             toolbar:[],  
  100.             onCheckAll:function(rows){  
  101.                 addcheckItem();  
  102.             },  
  103.             onCheck:function(rowIndex,rowData){  
  104.                 addcheckItem();  
  105.             },  
  106.             onUncheckAll:function(rows){  
  107.                 removeAllItem(rows);  
  108.             },  
  109.             onUncheck:function(rowIndex,rowData){  
  110.                 removeSingleItem(rowIndex,rowData);  
  111.             }  
  112.         });  
  113.         //将查询项放入工具栏中  
  114.         //$('#tb').insertBefore("table:first",'.datagrid-toolbar');  
  115.     });  
  116.       
  117.       
  118.   
  119.     function saveInstant(){  
  120.           
  121.     }  
  122.       
  123.       
  124. script>  
  125.   
  126.     <form id="pageform" class="easyui-form" method="POST" data-options="novalidate:true">  
  127.         <div class="pageBody">  
  128.             <table  class="tableFrom">  
  129.                 <tr>  
  130.                     <th>推送标题:th>  
  131.                     <td><input id="title" class="iss_text" name="title" data-options="required:true"/>td>  
  132.                 tr>  
  133.                 <tr>  
  134.                     <th>推送内容:th>  
  135.                     <td><textarea rows="8" cols="60" id="content" name="content" maxlength="150">textarea>td>  
  136.                 tr>  
  137.                 <tr>        
  138.                     <th>广播(所有人):th>  
  139.                     <td>  
  140.                         <select panelheight="auto" name="allpeople" id="allpeople" style="width:142px; width:185px\9;">  
  141.                             <option value="1">所有人option>  
  142.                             <option value="2">自定义option>  
  143.                         select>  
  144.                     td>   
  145.                 tr>               
  146.                 <tr id="hid">       
  147.                     <th>接收人:th>  
  148.                     <td >   
  149.                         <table id="dg2" width="100%" height="100%">table>       
  150.                     td>   
  151.                 tr>  
  152.                 <tr>  
  153.                     <td colspan="2" class="t-r">  
  154.                         <input type="button" class="button" onclick="saveInstant()" value="保存"/>  
  155.                         <input value="取消" type="button" class="button" onclick="$.closeWindow('dg');"/>  
  156.                     td>  
  157.                 tr>  
  158.             table>  
  159.         div>  
  160.     form>  

7、效果展示






推荐阅读
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
author-avatar
向日葵哄子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有