2010-08-15 4 views
0

J'ai un Jqgrid avec sous-grille activé dans mon projet MVC 2. Subgrid se développe et remplit les données sur le bouton. Je veux développer et afficher les données de sous-grille sur le chargement de la page. J'ai donc appelé la méthode exapandSubGridRow sur l'événement gridComplete de la grille parente. Maintenant, le problème est que la ligne subgrid est développée sur pageload, mais sans données, une ligne vide apparaît sous la ligne de la grille parent. Voici mon code, Quelqu'un peut-il m'aider à résoudre le problème.JqGrid- Extension de sous-grille au chargement de la page

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     jQuery("#list").jqGrid({ 
      url: '/jqgrid/DynamicGridData/', 
      datatype: 'json', 
      mtype: 'GET', 
      colNames: ['SurveyQnGrpId', 'SurveyQnGroup1'], 
      colModel: [ 
       { name:'SurveyQnGrpId', index:'SurveyQnGrpId', width:40, align:'left' }, 
       { name:'SurveyQnGroup1',index: 'SurveyQnGroup1',width: 400, 
       align: 'left'}], 
      pager: jQuery('#pager'), 
      rowNum: 10, 
      rowList: [5, 10, 20, 50], 
      sortname: 'SurveyQnGrpId', 
      sortorder: "SurveyQnGroup1", 
      viewrecords: true, 
      caption: 'My first grid', 
      subGrid: true, 
      subGridUrl: '/jqgrid/InnerGridData/', 
      subGridModel: [{ 
       name: ['SurveyQnGrpId','SurveyQnId', 'SurveyQn', 'SurveyQnCategory', 
         'MandatoryQn','RadioOption3'], 
       width: [10,10, 100, 10, 10,10], 
       align: ['left', 'left', 'left', 'left'], 
       params: ['SurveyQnGrpId'] 
      }], 
      gridComplete: function() { 
       var rowIds = $("#list").getDataIDs(); 
       $.each(rowIds, function (index, rowId) { 
         $("#list").expandSubGridRow(rowId); 
       }); 
      } 
     }); 
    }); 
</script> 

Merci à l'avance, Ancy

Répondre

1

Je ne sais pas si cela était disponible au moment où cette question a été posée, mais j'ai trouvé il y a une propriété subGridOptions, prend un objet. L'une des propriétés de cet objet est expandOnLoad, qui, lorsqu'il est réglé sur true, va faire des lignes dans l'expansion grille mère lorsque la grille est chargée:

jQuery(document).ready(function() { 
    jQuery("#list").jqGrid({ 
     url: '/jqgrid/DynamicGridData/', 
     datatype: 'json', 
     mtype: 'GET', 
     colNames: ['SurveyQnGrpId', 'SurveyQnGroup1'], 
     colModel: [ 
      { name:'SurveyQnGrpId', index:'SurveyQnGrpId', width:40, align:'left' }, 
      { name:'SurveyQnGroup1',index: 'SurveyQnGroup1',width: 400, 
      align: 'left'}], 
     pager: jQuery('#pager'), 
     rowNum: 10, 
     rowList: [5, 10, 20, 50], 
     sortname: 'SurveyQnGrpId', 
     sortorder: "SurveyQnGroup1", 
     viewrecords: true, 
     caption: 'My first grid', 
     subGrid: true, 
     subGridOptions: { expandOnLoad: true }, 
     subGridUrl: '/jqgrid/InnerGridData/', 
     subGridModel: [{ 
      name: ['SurveyQnGrpId','SurveyQnId', 'SurveyQn', 'SurveyQnCategory', 
        'MandatoryQn','RadioOption3'], 
      width: [10,10, 100, 10, 10,10], 
      align: ['left', 'left', 'left', 'left'], 
      params: ['SurveyQnGrpId'] 
     }], 
     gridComplete: function() { 
      var rowIds = $("#list").getDataIDs(); 
      $.each(rowIds, function (index, rowId) { 
        $("#list").expandSubGridRow(rowId); 
      }); 
     } 
    }); 
}); 

Voir: http://www.trirand.com/jqgridwiki/doku.php?id=wiki:subgrid

+0

'expandOnLoad' semble être une propriété de 'subGridOptions', pas' subGridModel' –

+0

Oups! Bonne prise. Édité. –

Questions connexes