bcm
bcm

Reputation: 5500

hide column (header and rows) post jqGrid render

Is it possible to hide a specific column in jqGrid after it has been setup, while ensuring all alignments are correct (table width and header/data alignment) for IE/FF.

The data can't be removed at back-end w/o major refactoring.

I am reiterating through a specific column and checking if it is all empty, and if so, I tried .remove() on the header and cells for that column, but the alignment goes off seriously (I think setGridWidth is still taking into account that removed column's width). I know there is a hide option when jqGrid initialises... but not sure if there is a method for that post render.

Upvotes: 4

Views: 6851

Answers (1)

Oleg
Oleg

Reputation: 221997

You can use the hideCol and showCol methods for hiding and showing columns after the jqGrid is created. The method hideCol doesn't remove any of the data from the jqGrid but only hides the specified column. See http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods for details.

I recommend examining the loadComplete event. You can get IDs of the loaded data using the getDataIDs method, then get the row data in a loop using getRowData. Make sure to check for empty data. Don't forget to call showCol for all columns you previously hid. You can always call showCol for all columns that should be seen and call hideCol for all columns you want to hide.

Upvotes: 6

Related Questions