Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jqGrid - setting caption dynamically

Tags:

jqgrid

I have the caption parameter set in the jqGrid definition. I want to know if there's a way to set it dynamically depending on the class attribute of the table element to which the jqGrid plugin is attached.

HTML 1

<table id="myjqgrid" class="view"></table>
<div id="Pager"></div>

HTML 2

<table id="myjqgrid" class="edit"></table>
<div id="Pager"></div>

JQGrid Definition

$("#myjqgrid").jqGrid({
    caption: ""     // this is what I want to set dynamically
})
like image 341
techlead Avatar asked Dec 30 '11 15:12

techlead


1 Answers

You can use setCaption method to set new caption on the grid:

var $grid = $('#myjqgrid');
$grid.jqGrid('setCaption', 'newCaption');

If you need to set the caption depend on the class of the <table> element the code can be like the following

if ($grid.hasClass('edit')) {
    $grid.jqGrid('setCaption', 'Edit Caption');
} else if ($grid.hasClass('vew')) {
    $grid.jqGrid('setCaption', 'View Caption');
} else {
    $grid.jqGrid('setCaption', 'Default Caption');
}

The only thing which you can't do with respect of setCaption method is to remove (to hide) the caption: the results which you have if you created grid without caption parameter (or with caption: ""). To remove (to hide) the caption you can do

$(">div.ui-jqgrid-titlebar", $grid.closest('div.ui-jqgrid-view')).hide();

or

$($grid[0].grid.cDiv).hide();

(see the answer for details).

like image 58
Oleg Avatar answered Oct 02 '22 20:10

Oleg