miniui反选

miniui中,如果行数据进行过合并,那么在数据全选的时候,就会出现问题,研究之后,发现可以用下面的方法解决:

<div id="datagrid" class="mini-datagrid" style="width:100%;height:100%;" visible="true" 
           onselectionchanged="onSelectionChange" 
           ondeselect="deselect" onselect="select">
    function onSelectionChange() {
            var rows = grid.getSelecteds();
            unselectedList = dedupe(unselectedList);
            for (var unidx = 0; unidx < unselectedList.length ; unidx ++ ){
                var sidx = rows.length;
                while(sidx--){
                     if(rows[sidx].deliveryid == unselectedList[unidx]){
                         rows.splice(sidx,1);
                     }
                }
            }
            for(var i = 0 ; i < rows.length ; i ++ ){
               //此时的rows为选中数据
            }

        }

 

    //反选
        function deselect(sender){
            unselectedList.push(sender.record.deliveryid); 
        }

        //选中
        function select(sender){
            selectedList = sender.record.deliveryid; 
            unselectedList = dedupe(unselectedList);
            var idx = unselectedList.length;
            while(idx--){
                   if(unselectedList[idx] ==  selectedList){
                       unselectedList.splice(idx,1);
                   }
               }
        }

        //去重
        function dedupe(array){
           return Array.from(new Set(array));
        }

 

posted @ 2018-07-02 16:41  筱小Q  阅读(605)  评论(0编辑  收藏  举报