Search code examples
jqueryjqgridjavascriptsubgrid

Disable subgrid expansion for selected rows of jqGrid


Problem: jqGrid with subgirds. I want to disable the expand/collapse functionality for some rows of the main grid.


Solution

  • I actually found a way:

    grid.jqGrid('setGridParam',{
                    afterInsertRow: function(rowid, aData, rowelem) {
    
                        var rowData = grid.getRowData(rowid);
                        if(**Condition**){
                            $('tr#'+rowid, grid)
                             .children("td.sgcollapsed")
                             .html("")
                             .removeClass('ui-sgcollapsed sgcollapsed');
                        }
                    }
                });
    

    There was a bit of a problem. The code @Frank removed the icon, but the 'click' event was still triggered. Trying to unbind the 'click' event doesn't seem to work, probably because it is attached later on ( maybe on gridComplete). Anyway, I figured that the click event is attached using one of the 'ui-sgcollapsed sgcollapsed' classes, so if you remove them, the event won't be attached.

    Hope it helps.