jqgrid 多選的問題


項目需求,jqgrid多選操作,翻頁的時候要記住之前的操作

在網上找到了網友提供的方法:

gridComplete : function() {
                removeHorizontalScrollBar("list");
                var _this = this;
                //console.log(item_selected);
                if(item_selected.length>0){
                    for (var i = 0; i < item_selected.length; i++) {
                        $(_this).jqGrid('setSelection',item_selected[i]);
                    }               
                }
            },
            beforeSelectRow:function(rowid, e) {
                var _this = this;
                var index = _.indexOf(item_selected, rowid);
                if(index==-1){
                    item_selected.push(rowid);
                }
                else{
                    item_selected = _.pull(item_selected, rowid);
                }
                return true;
            },
            onSelectAll:function(aRowids,status) {
                var _this = this;
                if(status){
                    item_selected = _.union(item_selected, aRowids);
                }else{
                    item_selected = _.difference(item_selected, aRowids);
                }           
            },

(注意,下划線對象的方法采用的是lodash.3.17.js)

這樣翻頁的時候會記住選中行

但是一開始的時候我沒有加紅色背景的return true 代碼,發現不點擊checkbox,而只是點擊該行,雖然實際上已經選中了,jqgrid getselectRow 方法也能得到選中行,但是checkbox卻沒有顯示勾選上的狀態,而正常情況下jqgrid默認的操作會選中該行,並改變checkbox的勾選狀態。

在解決問題的過程中,想到只在鼠標點擊checkbox的時候才設置item_selected數組值,使用multiboxonly:true參數,發現不起作用,據說是3.6版本之后不支持了,后來找到網友的一篇文章,解決代碼如下:

beforeSelectRow : function(rowid, e) {
                    var $myGrid = $(this), i = $.jgrid.getCellIndex($(e.target) .closest('td')[0]), cm = $myGrid.jqGrid( 'getGridParam', 'colModel'); if (cm[i].name === 'cb') { var index = _.indexOf(item_selected, rowid);
                        if (index == -1) {
                            item_selected.push(rowid);
                        } else {
                            item_selected = _.pull(item_selected, rowid);
                        }
                    }
                    

                },

但是在點擊全選的時候,卻依然不能正常設置item_selected的值,后來還是加了return true 才解決

 參考地址:

https://blog.csdn.net/deepwishly/article/details/8109753


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM