jQuery MiniUI

 找回密码
 立即注册
查看: 5027|回复: 9
打印 上一主题 下一主题

[求助]翻页后保留原选中数据的问题 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2013-12-19 16:37:46 |只看该作者 |倒序浏览
我做了一个grid,然后翻页后需要保留上一页选中的数据。
我参考了一下http://www.miniui.com/demo/#src=buttonedit/selectGrid_Multi3.html
复制了里面的代码:
    var selectMaps = {};
    function onGridLoad(e) {
        var rows = selectMaps[grid.getPageIndex()];
        if(rows) {
                alert(mini.encode(rows));
                grid.selects(rows);
        }
    }
    function onSelectoinChanged(e) {
        var rows = grid.getSelecteds();
        selectMaps[grid.getPageIndex()] = rows;
    }
我查看了一下alert出来的rows里面的数据,应该是没什么问题。
但是grid.selects(rows)就是选不中,这个可能是什么原因呢?
另外我使用的vo实体里面的参数比较多,比grid里面用的参数多,这个可能会影响么?

Rank: 8Rank: 8

沙发
发表于 2013-12-19 17:03:34 |只看该作者
grid.selects(rows) 是当前页被选中的行的集合数组

Rank: 2

板凳
发表于 2013-12-19 17:15:18 |只看该作者
factory 发表于 2013-12-19 17:03
grid.selects(rows) 是当前页被选中的行的集合数组

var rows = selectMaps[grid.getPageIndex()];
rows是当前页被选中的行的集合数组吧?
grid.selects(rows)应该是表格重新选中rows里面对应的行吧?

Rank: 2

地板
发表于 2013-12-19 17:24:08 |只看该作者
我重新把rows里面的数据alert出来看了一下,每次翻页以后第一页的_uid就变了。
比如我选中第一页第一条,_uid为0;翻到第二页,再翻回来这时第一页第一条的_uid为20。
有没有可能这这个_uid不一样导致不能重新选中?但是demo里面的没问题,demo里面应该也是有_uid的吧?

Rank: 8Rank: 8

5#
发表于 2013-12-19 17:25:31 |只看该作者
j467571900 发表于 2013-12-19 17:15
var rows = selectMaps[grid.getPageIndex()];
rows是当前页被选中的行的集合数组吧?
grid.selects(rows ...

是的,你做个简单重现的html页面上来,就你贴的代码看不出来问题

Rank: 2

6#
发表于 2013-12-19 17:40:57 |只看该作者
felt 发表于 2013-12-19 17:25
是的,你做个简单重现的html页面上来,就你贴的代码看不出来问题

<%@page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ page isELIgnored="false"%>
<!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>
    <title>添加通知对象</title>
    <jsp:include page="/commonCSS.jsp" />
    <jsp:include page="/commonJS.jsp" />
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <script src="<%=request.getContextPath()%>/js/boot.js" type="text/javascript"></script>
</head>
<body style="overflow-y: auto;padding:0px;padding-bottom: 25px;border:0px solid red;position: relative;">
    <fieldset style="margin:0px 5px;padding:0px 5px 5px 5px;position: relative;">
    <legend>用户列表</legend>
        <div id="datagrid1" name="datagrid1" class="mini-datagrid"
            style="width: 100%;height: 284px" multiSelect="true"
            url="${pageContext.request.contextPath}/notice/notice/noticeAction!queryAllUserList.action">
            <div property="columns">
            <div type="indexcolumn"></div>
            <div type="checkcolumn"></div>
            <div field="userid" name="userid" headerAlign="center" align="center">
                用户ID
            </div>
            <div field="loginname" name="loginname" headerAlign="center" align="center">
                登录名
            </div>
            <div field="username" name="username" headerAlign="center" align="center">
                用户名
            </div>
            <div field="groupid" name="groupid" headerAlign="center" align="center">
                角色ID
            </div>
            <div field="groupname" name="groupname" headerAlign="center" align="center">
                用户角色
            </div>
            </div>
        </div>
    </fieldset>
   
    <script type="text/javascript">
        mini.parse();
        
        var grid = mini.get("datagrid1");
        grid.hideColumn("userid");
        grid.hideColumn("groupid");
        grid.load();

        function GetSelecteds() {
            var rows = grid.getSelecteds();
            return rows;
        }
        var selectMaps = {};
        function onGridLoad(e) {
            var rows = selectMaps[grid.getPageIndex()];
            if(rows) {
                alert(mini.encode(rows));
                grid.selects(rows);
            }
        }
        function onSelectoinChanged(e) {
             var rows = grid.getSelecteds();
            selectMaps[grid.getPageIndex()] = rows;
        }
    </script>
</body>
</html>

jsp的话应该不会有影响吧?

Rank: 8Rank: 8

7#
发表于 2013-12-19 17:54:26 |只看该作者
j467571900 发表于 2013-12-19 17:40
添加通知对象
   
   

事件绑定了吗?

Rank: 2

8#
发表于 2013-12-20 09:25:54 |只看该作者
felt 发表于 2013-12-19 17:54
事件绑定了吗?

昨天临时有事出去了。grid里面我是绑定了事件的,不知道为什么复制上来的代码里面没有。奇怪了
onload="onGridLoad" onselectionchanged="onSelectoinChanged"

Rank: 8Rank: 8

9#
发表于 2013-12-20 10:09:52 |只看该作者
j467571900 发表于 2013-12-20 09:25
昨天临时有事出去了。grid里面我是绑定了事件的,不知道为什么复制上来的代码里面没有。奇怪了
onload="o ...

我不太清楚你有没有其他的操作,因为我把你的代码里面的url和表格的field改成我的数据的,
其他地方不变,是没有问题的

Rank: 2

10#
发表于 2013-12-20 10:14:41 |只看该作者
factory 发表于 2013-12-20 10:09
我不太清楚你有没有其他的操作,因为我把你的代码里面的url和表格的field改成我的数据的,
其他地方不变,是 ...

嗯,我朋友在他的项目里用了同样的方法好像也没什么问题。应该是我这边有哪些地方有问题了,我再研究研究吧。谢谢各位版主的热心帮助了。

Archiver|普加软件

GMT+8, 2025-7-17 01:49 , Processed in 1.061590 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部