easyui combogrid 多选 翻页之后之前的选择被覆盖怎么解决呀

easyui combogrid 多选 翻页之后之前的选择被覆盖怎么解决呀,第1张

$("#maingrid").datagrid({ 

    idField: 'id', //这一行加到你的datagrid属性里去

    view: fileview //这一行也要加到你的datagrid属性里去 

})

//拷贝以下代码放到:$(function(){     })你的这个里面

var fileview = $.extend({}, $.fn.datagrid.defaults.view, { onAfterRender: function (target) { ischeckItem() } })

var checkedItems = []

//拷贝以下代码(注:以下代码千万不要粘贴到  $(function(){     })    ),否则不会执行

 function ischeckItem() {

        for (var i = 0 i < checkedItems.length i++) {

            $('#maingrid').datagrid('selectRecord', checkedItems[i]) //根据id选中行 

        }

    }

 function findCheckedItem(ID) {

        for (var i = 0 i < checkedItems.length i++) {

            if (checkedItems[i] == ID) return i

        }

        return -1

    }

 function addcheckItem() {

        var row = $('#maingrid').datagrid('getChecked')

        for (var i = 0 i < row.length i++) {

            if (findCheckedItem(row[i].id) == -1) {

                checkedItems.push(row[i].id)

            }

        }

    }

    function removeAllItem(rows) {

        for (var i = 0 i < rows.length i++) {

            var k = findCheckedItem(rows[i].id)

            if (k != -1) {

                checkedItems.splice(i, 1)

            }

        }

    }

    function removeSingleItem(rowIndex, rowData) {

        var k = findCheckedItem(rowData.id)

        if (k != -1) {

            checkedItems.splice(k, 1)

        }

    }

onSelect: function(rec){var val = $('#cc1').combobox('getValues').join(',')$('#OperationID').val(val)}

这样可以多选,用一个文本框解决后台取值问题,后台直接取值的话,跟你一样问题

插件没有,不过可以说说原理;设置一个<input type=“text" readonly=true><br/><select multiple style="display:none"></select>,当点击input的时候,查询数据库,将值赋值给select并让select显示出来,选择<option>的时候给input赋值就搞定了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11373988.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存