2010-11-27 33 views
1

Here il y a une réponse sur la façon de développer une sous-grille lorsque l'on clique une ligne à l'aide:jQuery - jqGrid - développer, réduire sous-maille sur la ligne de grille cliquez

onSelectRow: function(rowId) { 
    $("#jqgrid_id").expandSubGridRow(rowId); 
} 

Comment peut-on réduire la ligne si elle a été déjà étendu? Je cherche quelque chose comme:

onSelectRow: function(rowId){ 
    if (the_row_of_the_grid is expanded) { 
     // collapse: How implement this??? 
    } else { 
     $("#jqgrid_id").expandSubGridRow(rowId); 
    } 
} 

d'avoir une complète expansion/effondrement en ligne clic.

Répondre

6

Je ne l'ai pas testé, mais il me semble que le code suivant devrait faire ce que vous avez besoin:

onSelectRow: function (rowId) { 
    $("#jqgrid_id").jqGrid ('toggleSubGridRow', rowId); 
} 

(voir jqGrid documentation)

+0

Ok.Thank vous! Il travaille! – mirku

2

i besoin de la même chose, mais je ne pouvait pas permettre à la grille d'être développée dans le cas où elle était déjà effondrée, donc le 'toggleSubGridRow' ne fonctionnerait pas pour moi. Mieux dans la situation où seul un effondrement devrait être autorisé est la méthode 'collapseSubGridRow'.

onSelectRow: function (rowId) { 
    $("#jqgrid_id").jqGrid ('collapseSubGridRow', rowId); 
} 
0

il ne fonctionnait pas pour moi au début xD ... J'ai mis sur mes selectOnExpand subGridOptions, donc chaque fois que je clique un le développer sélectionnez la ligne et appeler une nouvelle fois onSelectRow ahaha ... donc drôle ...

Hope this aider un peu fou comme moi là :)