Forum

November 2nd, 2014
A A A
Avatar

Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

The forums are currently locked and only available for read only access
sp_Feed Topic RSS sp_TopicIcon
deselectAfterSort and sorting
02/10/2009
04:37
Avatar
Max
Guest
Guests

There is a bug in the sorting a multiselect table with deselectAfterSort = true. The selections are reset. This happens because in grid.base.js at row 744 in the sortArrayData method it cancels all the selections that had been preserved in sortData. These are the "incriminated" rows.

            if(ts.p.multiselect) {
                $("tbody tr", ts.grid.bDiv).removeClass("ui-state-highlight");
                $("[id^=jqg_]",ts.rows).attr("checked",false);
                $("#cb_jqg",ts.grid.hDiv).attr("checked",false);
                ts.p.selarrrow = [];
            }

02/10/2009
05:10
Avatar
tony
Sofia, Bulgaria
Moderator
Members

Moderators
Forum Posts: 7721
Member Since:
30/10/2007
sp_UserOfflineSmall Offline

Hello Max,

Thanks. Actually this code is not needed. All is done in sortData function.

Fixed in GitHub

Betst Regards

Tony

For professional UI suites for Java Script and PHP visit us at our commercial products site - guriddo.net - by the very same guys that created jqGrid.

18/11/2009
18:17
Avatar
adama
Guest
Guests

I am running the most recent version and I still seem to be losing the selected rows in a multiselect grid after a local sort.

I was looking to do a work around with an afterSort event but I don't see one.

Great tool overall!

Thanks,

Adam

19/11/2009
04:45
Avatar
tony
Sofia, Bulgaria
Moderator
Members

Moderators
Forum Posts: 7721
Member Since:
30/10/2007
sp_UserOfflineSmall Offline

Hello,

Check the jqGrid options and deselectAfterSort feature.

http://www.trirand.com/jqgridw.....ki:options

Regards

Tony

For professional UI suites for Java Script and PHP visit us at our commercial products site - guriddo.net - by the very same guys that created jqGrid.

20/10/2010
00:19
Avatar
dcohn
New Member
Members
Forum Posts: 2
Member Since:
19/10/2010
sp_UserOfflineSmall Offline

This still isn't working.

Here's my table config:

myGrid.jqGrid({
                            datatype:        'local',
                            caption:        'All Vehicles',
                            colNames:        ['DeviceId', 'Driver'],
                            colModel:        [
                                              {name: 'deviceId', firstsortorder: 'asc', sorttype: 'text', key: true},
                                              {name: 'driver', sorttype: 'text'},
                                              ],
                            ignoreCase:    true,
                            rowNum:        0,
                            viewrecords:    true,
                            shrinkToFit:    false,
                           
                            sortable:        true,
                            multiselect:    true,
                            deselectAfterSort: false                           
                    });

When I sort, jqGrid('getGridParam', 'selarrrow') still returns the selected IDs, but the rows are not checked anymore.  I've spent some time trying to debug the code, it looks like the selectionPreserver function is never getting called. Am I doing something wrong?

vehicleListGrid.jqGrid({
                            datatype:        'local',
                            caption:        'All Vehicles',
                            colNames:        ['DeviceId', 'Driver'],
                            colModel:        [
                                              {name: 'deviceId', firstsortorder: 'asc', sorttype: 'text', key: true},
                                              {name: 'driver', sorttype: 'text'},
                                              ],
                            ignoreCase:    true,
                            rowNum:        0,
                            viewrecords:    true,
                            shrinkToFit:    false,
                            
                            sortable:        true,
                            multiselect:    true,
                            deselectAfterSort: false,
                            onSelectRow:    function(id, selected){
                                                var selectedVehicle = core.getDataObject('Vehicle', id);
                                                if(selected) {
                                                    var rowColor = rowColors.pop();
                                                    if(rowColor) {
                                                        $j(this).find('#' + id).css('backgroundColor', rowColor);
                                                        selectedVehicle.setRowColor(rowColor);
                                                    } else
                                                        alert('You may select a maximum of ' + MAX_SELECTED_VEHICLES + ' vehicles at a time.');
                                                } else {
                                                    rowColors.push($j(this).find('#' + id).css('backgroundColor'));
                                                    $j(this).find('#' + id).css('backgroundColor', '');
                                                    selectedVehicle.clearRowColor();
                                                    
                                                    if($j(this).jqGrid('getGridParam', 'selarrrow').length == 0)
                                                        $j(core).trigger(core.events.VEHICLE_LIST_SELECTION_CLEARED, {deviceId: id});
                                                }
                                                
                                                var selectedIds = $j(this).jqGrid('getGridParam', 'selarrrow');
                                                var allSelectedVehicles = [];
                                                for(var i = 0; i < selectedIds.length; i++) {
                                                    allSelectedVehicles.push(core.getDataObject('Vehicle', selectedIds[i]));
                                                }
                                                
                                                
                                                $j(core).trigger(core.events.VEHICLE_LIST_SELECTION_CHANGED,
                                                                                                            {
                                                                                                                vehicle: selectedVehicle,
                                                                                                                selectedVehicles: allSelectedVehicles,
                                                                                                                deselectEvent: !selected
                                                                                                            }
                                                );
                                            },
                            beforeSelectRow: function(id, event){
                                                if(event.target && $j(event.target).is(':checked')){
                                                    if(rowColors.length == 0) {
                                                        $j(event.target).attr('checked', false);
                                                        $j('<div align="center">You may select a maximum of ' + MAX_SELECTED_VEHICLES + ' vehicles at a time.</div>').dialog({
                                                            draggable:    false,
                                                            resizable:    false,
                                                            modal:        true,
                                                            title:        'Error!',
                                                            width:        250,
                                                            buttons:    {
                                                                            'OK': function(){$j(this).dialog('destroy');}
                                                                        },
                                                            close:        function(){$j(this).dialog('destroy')}
                                                        });
                                                        return false;
                                                    }
                                                }
                                                return true;
                                            }
                    });
04/09/2011
18:09
Avatar
brianray
New Member
Members
Forum Posts: 1
Member Since:
04/09/2011
sp_UserOfflineSmall Offline

I am having the same issue. I did find a ticket in github https://github.com/tonytomov/jqGrid/issues/117

05/09/2011
19:37
Avatar
tony
Sofia, Bulgaria
Moderator
Members

Moderators
Forum Posts: 7721
Member Since:
30/10/2007
sp_UserOfflineSmall Offline

Hello,

The problem is fixed from long time.

Regards

For professional UI suites for Java Script and PHP visit us at our commercial products site - guriddo.net - by the very same guys that created jqGrid.

Forum Timezone: Europe/Sofia

Most Users Ever Online: 715

Currently Online:
34 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

OlegK: 1255

markw65: 179

kobruleht: 144

phicarre: 132

YamilBracho: 124

Renso: 118

Member Stats:

Guest Posters: 447

Members: 11373

Moderators: 2

Admins: 1

Forum Stats:

Groups: 1

Forums: 8

Topics: 10592

Posts: 31289

Newest Members:

, razia, Prankie, psky, praveen neelam, greg.valainis@pa-tech.com

Moderators: tony: 7721, Rumen[Trirand]: 81

Administrators: admin: 66

Comments are closed.
Privacy Policy   Terms and Conditions   Contact Information