2014-10-16 12 views
1

기본 그리드는 데이터를로드하지만 서브 그리드 데이터는 표시되지 않습니다.Jqgrid subgrid json 데이터가 표시되지 않습니다.

이것은 JSON의 아 격자 내 자바 제어기에 의해 반환 된 데이터이다

{ "allTrackingNrs"널 "페이지"1 "기록"[{ "기준": "DGL1008" "shipUnitType": "CARTON", "totalOfCartons": 1, "trackingNr": "SLC160759060"}, { "reference": "DGL-1008", "shipUnitType": "CARTON", "totalOfCartons": 1, "trackingNr ","DLC-1008 ","shipUnitType ":"CARTON ","totalOfCartons ": 1,"trackingNr ":"SLC160759060 "}, {"reference ":"DGL1008 " "tracksUnitType": "CARTON", "totalOfCartons": 1, "trackingNr": "SLC160759060"}], "recordsTotal": 4, "rows": 4, "sidx": null, "sord": "asc" , "total": 1, "trackingNr": "SLC160759060", "truckId": null, "truckShipmentComponent": {}}

<script type="text/javascript"> 
    jQuery().ready(function() { 
     var grid = jQuery("#shipment_grid"); 
     var mainGridPrefix = "s_"; 
     grid.jqGrid({ 
      url: '${pageContext.request.contextPath}/getTruckShipmentJSONAction?truckId=' + <c:out value="${truckId}" />, 
      datatype: "json", 
      mtype: 'GET', 
      colNames: ['Lead Tracking #'], 
      colModel: [ 
       {name: 'trackingNr', width: 100} 
      ], 
      rowNum: 10, 
      height: "auto", 
      width: 850, 
      idPrefix: mainGridPrefix, 
      autoheight: true, 
      rowList: [10, 20, 30], 
      pager: jQuery('#shipment_grid_pager'), 
      sortname: 'trackingNr', 
      emptyrecords: 'No shipments found with the selected filter(s)', 
      sortorder: "desc", 
      jsonReader: { 
       root: "records", 
       page: "page", 
       total: "total", 
       records: "rows", 
       repeatitems: false 
      }, 
      viewrecords: true, 
      altRows: false, 
      gridview: true, 
      multiselect:true, 
      hidegrid: false, 
      shrinkToFit: true, 
      forceFit: true, 
      idPrefix: mainGridPrefix, 
      caption: "Shipments Overview", 
      subGrid: true, 
      loadComplete: function(data) { 
       grid.jqGrid('setColProp', 'trackingNr',{ 
        searchoptions: { 
         clearSearch: true, 
         attr: {style: "align:'left'; width:150px;margin-top:1px;"}, 
         sopt:['cn'], 
         dataInit: function(elem) { 
          $(elem).autocomplete({ 
           source:data.allTrackingNrs, 
           delay:0, 
           minLength:2 
          }); 
         } 
        } 
       }); 
       grid.jqGrid('filterToolbar', {autoSearch: true}); 

       // reduce font size of autocomplete input 
       $(".ui-autocomplete.ui-widget").css({fontSize: "11px"}); 
      }, 
      subGridRowExpanded: function (subgridDivId, rowId) { 
       var rowData = grid.getRowData(rowId); 
       var selTrackingNr= rowData['trackingNr']; 
       var $subgrid = $("<table id='" + subgridDivId + "_t'></table>"); 
        //  pureRowId = $.jgrid.stripPref(mainGridPrefix, rowId), 
        // subgrids = $(this).jqGrid("getGridParam", "userData"); 

       $subgrid.appendTo("#" + $.jgrid.jqID(subgridDivId)); 
       $subgrid.jqGrid({ 
        data: "json", 
        mtype: 'GET', 
        url: '${pageContext.request.contextPath}/getTruckShipmentJSONAction?trackingNr=' + selTrackingNr, 
        colNames: ['Ship Type (Pallet/Carton)', 'Ship Unit (Pallet ID/Cone #)', 'Total Cartons'], 
        colModel: [ 
         { name: "shipUnitType"}, 
         { name: "reference", sorttype: "integer" }, 
         { name: "totalOfCartons", sorttype: "integer" } 
        ], 
        cmTemplate: { align: "center" }, 
        jsonReader: { 
         root: "records", 
         repeatitems: false 
        }, 
        sortname: "reference", 
        sortorder: "desc", 
        height: "100%", 
        rowNum: 10, 
        autowidth: true, 
        autoencode: true, 
        gridview: true, 
        idPrefix: rowId + "_" 
       }); 
      } 
     }).navGrid('#shipment_grid_pager', {edit: false, add: false, del: false, search: false, refresh: true}) 
       .jqGrid("setLabel", "trackingNr", "", {"text-align": "left"}); //align 'Lead Tracking #' column header to the left; 


    }); 

</script> 

가 어떻게 내 아 격자 데이터를 표시 할 수 있습니다 내 자바 스크립트 코드?

답변

0

문제가 해결되어 오타가 발생했습니다. 나는 데이터 : 데이터 형식 대신 "json"을 subGridRowExpanded에 "json"이라고 썼습니다 : function (subgridDivId, rowId) {....} function