2017-08-24 1 views
0
function drawTable(url){ 

    $('#reportList').jqGrid({ 
     url: url, 
     mtype: 'GET', 
     datatype: 'json', 
     shrinkToFit:false, 
     width:null, 
     colNames:['num', 'in_charge', 'section1','section2','product','product_description','status','rate','start_date','end_date','proceed_detail'], 
     colModel:[ 
      {name:'num', index:'num', hidden:true}, 
      {name:'in_charge', index:'in_charge', hidden:true}, 
      {name:'section1', index:'section1', width:70}, 
      {name:'section2', index:'section2', width:140}, 
      {name:'product', index:'product', width:80}, 
      {name:'product_description', index:'product_description', width:300}, 
      {name:'status', index:'status', width:45}, 
      {name:'rate', index:'rate', width:50}, 
      {name:'start_date', width:80, index:'start_date'}, 
      {name:'completion_date', width:80, index:'completion_date'}, 
      {name:'proceed_detail', index:'proceed_detail', width:400} 
     ], 

     pager: '#pager', 
     multiselect: true, 
     rownumbers: true, 
     shrinkToFit:false, 
     loadonce: true, 
    }); 
} 

Je récupère des données du serveur et les affiche en jqGrid.Comment fusionner des lignes avec la même valeur

Les premier et deuxième composants de colModel sont des composants masqués. Ainsi, 'section1' est la première colonne à afficher en jqGrid.

Plusieurs lignes peuvent avoir les mêmes lignes section1 et section2. Donc, ce que je veux faire est de fusionner les lignes qui ont même section1 et section2. La balise de base fournit rowspan pour fusionner des lignes. Toutefois, jqGrid ne fournit jamais cette fonction par défaut. J'ai cherché stackoverflow pendant longtemps pour trouver la solution, mais n'ai pas pu le faire.

+0

https://stackoverflow.com/questions/12200621/jqgrid-grouping-row-level-data – diavolic

+0

Vous devriez probablement essayer d'utiliser des données de regroupement au lieu d'utiliser l'approche 'rowspan'? Vous devez ajouter 'grouping: true, groupingView: {groupField: [" section1 "," section2 "]}' et ajouter 'forceClientSorting: true' si vous utilisez [free jqGrid] (https://github.com/free -jqgrid/jqGrid) ou pour trier les données sur le serveur par '" section1 "' et '" section2 "'. – Oleg

Répondre

0
  1. Fetch données du serveur avec 'extraProperty' comme columnattr, qui contiendra des informations à fusionner rowspan ou non. Vous devez donc mettre à jour votre code serveur en fonction de vos besoins (il suffit d'ajouter une colonne).

    1. Dans colmodel ajouter l'attribut 'cellattr' pour la colonne particulière et affecter votre fonction qui décidera d'avoir rowspan de extraProperty « s données du serveur. Cette fonction vous permet de personnaliser la cellule dans la grille. alors ici vous pouvez fusionner la ligne.

Ref: Jqgrid - grouping row level data

Cheerssssss.