`
highfly-s
  • 浏览: 100846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据分页显示,附带每个页面的选中状态

阅读更多

今天有人问我怎么在分页当中,附带数据列表中的复选框选择状态。需求是这样的,在切换分页的时候,第一页有N个已经是被选中,再从另一个页切换回来时,还可以看到先前的选择状态。明白了需求,下面我们开始写代码:

 

下面的a,b两个变量本应该是通过一些JS的处理取得页面的复选框数组值 ,现在的数值是模拟来的。b变量应该在调用tabPage时去获得。我在这里只是为提供一个思路,下面的大家自由来发挥

 

 

//取得当前页面列表复选框的所有值,临时空间变量
  var a=[1,2,3,4,5,6,7,10,12];
 //取得当前页面选中的复选框所有值,昨临时变量   
  var b=[3,4,5,6];
 //保存所有的页面选中值,c的值是需要经过后台的交互处理传递
 var c=[3,4,5,6,7];
 
 //上一次操作本页面选中的值及其遍历选中状态 <一, 进入此页面时需要执行的遍历>
 function ergodicSelected(a,c){
     //当前页的遍历后所选中的值
     var currSe=[];
    for(var i=0;i<c.length;i++){
         var index=$.inArray(c[i],a);
        if(index>-1){
            var val= a[index];   
         //alert(val);
         //比对value属性值等于val的为选中状态
           $("input[name=\'item\'][value=\'"+val+"\']").attr('checked',true);
           currSe.push(val);
        }
 
     }
    return currSe;
 }



 var prevCheck=ergodicSelected(a,c);
 /*
 delHaveValue(arr1,arr2)
 判断arr1 是否存在于arr2中,如果存在则从arr2中删除相同的索引键值
 
 */
 function delHaveValue(arr1,arr2){
     for(var j=0;j<arr1.length;j++){
        var index=$.inArray(arr1[j],arr2);
       
        if(index>-1){
            //alert(index);
           arr2.splice(index,1);
        }
     }
     return arr2;
 }
 //<二>触发点击切换页时需要做的处理,调用tabPage  返回的是最包括当前页和其他页最新的选择中的状态值。在触动切换页码时,可以把此值向后台PUSH
 
 function tabPage(){
     //b应该是在调有此方法时,从页面中获得的
     
     //向C中放值
        for(var j=0;i<b.length;j++){
            var index=$.inArray(b[j],c);
            if(index>-1){
                 c.push(b[i]);
            }   
        } 
    //比较当前选中状态的值 ,和从后台传过来当前状态值的差别
    //var prevCheck=ergodicSelected(a,c);
    var delValue=delHaveValue(b,prevCheck);
    return delHaveValue(delValue,c);
             
     
 }
 
 /*
 如果在分页的当中,上面有查询条件,根据查询的结果我们进行了复选框的选择。默认情况下我们不去添加搜索条件,在后台当中接收到的FORM 表单值 不变。在后台我们有一个临时变量对象,用以保存form表单值 的状态。每次请求controller时我们就做一次比对,看是否临时变量值 和新得到的form表单值 是否有变化。如果有变化了,存储复选框选中的数组我们就给初始化为空。否则临时存储form表单的对象不变
 
 */
 

分享到:
评论

相关推荐

    前端分页demo,附带css,jquery直接运行

    可以设定分页按钮的悬浮效果、选中状态以及间距,确保整个分页组件在不同设备上都有良好的显示效果。 3. **jQuery 插件**:在"描述"中提到的"jquery插件分页Demo"可能指的是使用jQuery的插件来简化分页的实现。...

    易语言超级列表框加分页源码

    2. **数据分页**:学习如何设计分页逻辑,计算每页的数据量,根据用户翻页操作动态加载或更新列表框中的数据。这可能涉及到数据库查询优化,确保数据读取高效。 3. **用户交互**:处理用户翻页请求,通常通过按钮或...

    联系人分章节显示、ListView快速滑动显示联系人首字母、附带字母表快速查找的例子

    我们需要维护一个字母表视图,通常是一个水平滚动的`HorizontalScrollView`,里面包含一个`TextView`数组,每个`TextView`代表一个字母。当ListView滚动时,我们根据当前位置更新字母表的选中状态,同时可以优化滑动...

    Ext ComBobox 附带完整附件

    3. **模板和渲染**:DmaComboBox.js可能包含了自定义的模板和渲染逻辑,使得每个选项的展示可以高度自定义,包括文字、图片甚至更复杂的HTML结构。 4. **事件处理**:作为Ext JS组件,ComBobox会有一套完整的事件...

    Jquery flexigrid插件 添加checkbox,(双击事件)onRowDblclick

    在开发web应用时,我们经常需要处理大量的表格数据,这时Flexigrid就能派上用场,它使得数据显示更加灵活且易于操作。 在Flexigrid中添加Checkbox是一个常见的需求,这有助于用户进行多选操作,例如批量删除或更新...

    PHP网站开发项目式教程任务3.pptx

    - **功能说明**:在超链接中,可以附带数据并使用`$_GET`在服务器端接收这些数据。这通常通过在`href`属性中添加`?key=value`格式的参数来实现。 - **示例**:创建HTML文件设置超链接,如`...

    bootstrap-table

    4. **分页**:Bootstrap Table 自带分页功能,允许用户控制每页显示的数据量,并在多页间切换。 5. **行选择**:表格中的行可以被选中,支持单选或多选模式,常用于数据操作或表单提交。 6. **扩展性**:通过使用...

    ClassList-HK列表编辑

    它展示了一种列表形式的数据视图,可以包含多列,并且每行数据可以有不同的列宽和显示格式。CtrlList可能是一个扩展版,增加了可编辑功能,允许用户直接在列表内修改数据,而无需打开新的窗口或对话框。 2. **列表...

    三级地址列表(省市区)

    例如,使用HashMap来存储省份,每个省份下再有一个HashMap存储对应的市区,以此类推。这种结构便于查找和遍历数据。 7. **UI设计与适配**: - UI设计应考虑不同屏幕尺寸和分辨率的适配,可能使用RecyclerView或者...

    angular实现完整省市区三级联动,附json文件

    通常,这是一个嵌套的对象数组,每个对象代表一个省,包含其下属的市,市下又有区。数据模型的设计应适应这种结构,如: ```json { "provinces": [ { "name": "省份A", "cities": [ { "name": "城市A1", ...

    C#编程经验技巧宝典

    111 &lt;br&gt;0184 如何在ASP.NET中获取文件的扩展名 111 &lt;br&gt;0185 如何在ASP.NET中用URL在页面之间传值 112 &lt;br&gt;0186 如何使用IsPostBack实现ASP.NET页面加载 112 &lt;br&gt;0187 如何利用输出缓存技术缓存...

Global site tag (gtag.js) - Google Analytics