jQuery MiniUI

标题: DataGrid 跨页选择 无效 [打印本页]

作者: zhulpchina    时间: 2015-4-24 14:42:37     标题: DataGrid 跨页选择 无效

[attach]6067[/attach][attach]6068[/attach]


如图,在第一页我选择了4项,点击下一页通过监视发现后台数据项没有丢失,我再返回上一页时原来选中的项的并没有选中,后台数据如图:[attach]6069[/attach]
返回上一页后没有了。
[attach]6070[/attach]

我参考的例子:http://miniui.com/bbs/forum.php?mod=viewthread&tid=25959&highlight=%E8%B7%A8%E9%A1%B5
Demo中:http://www.miniui.com/demo/#src=buttonedit/selectGrid_Multi3.html

请问下,这个问题出现在哪里?

作者: dforce    时间: 2015-4-24 15:00:43

对比一下你的页面和我们的示例有什么不一样
还是你翻页的时候没触发onload事件
作者: zhulpchina    时间: 2015-4-24 15:10:39

dforce 发表于 2015-4-24 15:00
对比一下你的页面和我们的示例有什么不一样
还是你翻页的时候没触发onload事件 ...

我的源码是拷过来的
js:
function onGridLoad(e) {
    var rowsTest = selectMaps[grid.getPageIndex()];
    if(rowsTest) grid.selects(rowsTest);
}
function onSelectoinChanged(e) {
    var rows = grid.getSelecteds();
    selectMaps[grid.getPageIndex()] = rows;
}


html:
<div id="datagrid" idField="id" class="mini-datagrid"
                                style="width: 99%; height: 100%;" multiSelect="true"
                                dependMerge="true" onload="onGridLoad" onselectionchanged="onSelectoinChanged">
作者: zhulpchina    时间: 2015-4-24 15:16:54

zhulpchina 发表于 2015-4-24 15:10
我的源码是拷过来的
js:
function onGridLoad(e) {

看着怎么像是selects()没起效
作者: dforce    时间: 2015-4-24 15:16:56

zhulpchina 发表于 2015-4-24 15:10
我的源码是拷过来的
js:
function onGridLoad(e) {

你表格的数据怎么给的,是后台分页的数据吗
作者: zhulpchina    时间: 2015-4-24 15:18:12

dforce 发表于 2015-4-24 15:16
你表格的数据怎么给的,是后台分页的数据吗

是的,我们在数据库层也做了分页
作者: dforce    时间: 2015-4-24 15:24:51

zhulpchina 发表于 2015-4-24 15:18
是的,我们在数据库层也做了分页

那你调试一下,看选中onGridLoad有没有进入,里面的selects操作有没有执行到
作者: zhulpchina    时间: 2015-4-24 15:34:37

dforce 发表于 2015-4-24 15:24
那你调试一下,看选中onGridLoad有没有进入,里面的selects操作有没有执行到

if(rowsTest) grid.selects(rowsTest);改成if(rowsTest){grid.selects(rowsTest);} 确实进入了
作者: zhulpchina    时间: 2015-4-24 15:35:12

zhulpchina 发表于 2015-4-24 15:34
if(rowsTest) grid.selects(rowsTest);改成if(rowsTest){grid.selects(rowsTest);} 确实进入了 ...

rowsTest中的数据就是我选中的数据
作者: zhulpchina    时间: 2015-4-24 15:37:03

zhulpchina 发表于 2015-4-24 15:35
rowsTest中的数据就是我选中的数据

执行完onGridLoad()后就执行onSelectoinChanged()了;
作者: dforce    时间: 2015-4-24 16:12:21

zhulpchina 发表于 2015-4-24 15:37
执行完onGridLoad()后就执行onSelectoinChanged()了;

有数据跑了选中操作不可能没选中啊
把你的页面发上来看看
作者: zhulpchina    时间: 2015-4-24 16:28:23

dforce 发表于 2015-4-24 16:12
有数据跑了选中操作不可能没选中啊
把你的页面发上来看看

var zzjg = "";
var fpzl = "";
var form;
var gsmc = ""; //公司名称
var grid;
var sqxh;
$(function() {
        init();
});
/**
* 1、初始化 初始化函数
*
* @return
*/
function init() {
        $("#datagridDyfp").css("display", "none");
       
        gsmc = mini.get("gsmc");
        gsmc.load("../"+configData[mode].url.generalsel+"?taskid=PERM_DM_DEPARTMENT_NSRSBH"+
                                "&privilegeid=fpkjgl_sqkpgl&controlid=zzjg&kjlx=2&isNsrCombobox=Y");
        gsmc.select(0);
       
        var clzt = mini.get("clzt");
        clzt.setUrl("../" + configData[mode].url.generalsel + "?taskid=DM_TYDM&dmlx=slzt");
        clzt.setValue('6');
        var sqlx = mini.get("sqlx");
        sqlx.setUrl("../" + configData[mode].url.generalsel + "?taskid=DM_TYDM&dmlx=sqlx");
        var ydywlx = mini.get("ywlx");
        ydywlx.setUrl("../" + configData[mode].url.generalsel + "?taskid=DM_TYDM&dmlx=ydywlx");
        // 初始化时间
        var t1 = mini.get("sqsjQ");
        t1.setValue(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate() - 10));
        var t2 = mini.get("sqsjZ");
        t2.setValue(new Date());
        grid = mini.get("datagrid");
        grid.sortBy('sqsj', 'desc');
        search();// 查询
}

function gsmcChange() {
        mini.get("nsrsbh").setValue(gsmc.getValue());
        changeFpzl();
}
function changeFpzl() {
        fpzl = mini.get("fpzl");
        fpzl.setPopupHeight(5);
        var nsrsbh = mini.get("nsrsbh").getValue();
        $.ajax( {
                url : "../" + configData[mode].url.generalsel
                                + "?taskid=FpglFpzlmcQuery&nsrsbh=" + nsrsbh,
                success : function(text) {
                        var pyidGender = mini.decode(text);
                        var arr = new Array();
                        for ( var i = 0; i < pyidGender.length; i++) {
                                if ('03' != pyidGender.fplbdm) {
                                        arr.add(pyidGender);
                                }
                        }
                        fpzl.setData(arr);
                }
        });
}
/**
* 2、查询
*
* @return
*/
function search() {
               
}

var selectMaps = {};
function GetAllSelecteds() {
    var data = [];
    for(var pageIndex in selectMaps){
        var rows = selectMaps[pageIndex];
        data.addRange(rows);
    }
    return data;
}

function onGridLoad(e) {
    var rowsTest = selectMaps[grid.getPageIndex()];
    if(rowsTest) grid.selects(rowsTest);
}
function onSelectoinChanged(e) {
    var rows = grid.getSelecteds();
    selectMaps[grid.getPageIndex()] = rows;
}



function onNumberValidation(e) {
        if (e.isValid) {
                if (e.value.length > 0) {
                        if (isNumber(e.value) == false) {
                                e.errorText = "必须输入数字";
                                e.isValid = false;
                        }
                }
        }
}
/* 是否英文+数字 */
function isNumber(v) {
        var re = new RegExp("^[0-9]+$");
        if (re.test(v))
                return true;
        return false;
}
function view() {}

function singleAccept() {}

function allAccept() {}

var gridDyfp;// grid ID
function printInvoice() {}
function xfsqFpyl(data) {}
function sqFpyl(ydrows, sqrow) {}
function sqFpylTwo(sqrow,ydrows,wdbh,nsrsbh){}
function invoiceWaybill(o, sqdata) {}
function preInvoice(jgdata, sqdata) {}

function delApply() {}
/**
*/
function stateCorrection(){}

function exportAllFpxx(){}
作者: zhulpchina    时间: 2015-4-24 16:30:02

zhulpchina 发表于 2015-4-24 16:28
var zzjg = "";
var fpzl = "";
var form;

html:
<div id="datagrid" idField="id" class="mini-datagrid"
                                style="width: 99%; height: 100%;" multiSelect="true"
                                dependMerge="true" onload="onGridLoad" onselectionchanged="onSelectoinChanged">
作者: dforce    时间: 2015-4-24 17:00:59

zhulpchina 发表于 2015-4-24 16:30
html:

代码上没问题

作者: zhulpchina    时间: 2015-4-24 17:07:01

dforce 发表于 2015-4-24 17:00
代码上没问题

我也奇怪了,demo提供的样例是可以,为么这就不行了。是不是版本的问题?
作者: dforce    时间: 2015-4-24 17:10:45

zhulpchina 发表于 2015-4-24 17:07
我也奇怪了,demo提供的样例是可以,为么这就不行了。是不是版本的问题? ...

你本地跑我们的示例看一下




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2