2016-05-03 11 views
0

Ich habe ein Problem mit meinem subgrid Daten, wenn ich PuTTY mit meinem Vater zu programmieren verwenden. Wir machen ein Gitter mit einem Subgitter; Dies empfängt JSON- und PHP-Antworten. Wir sehen es in der Entschlüsselung von Mozilla und der Syntax des JavaScript-Codes. Ist es in Ordnung, kein Problem der Syntax oder Semantik?Ich weiß nicht, warum mein jqGrid Untergitter zeigt mir nicht die Daten

Nun, das ist my page und mein Code:

$(document).ready(function() { 
    $("#divFacturas").html("<table><tr><td><table id='grillaFac' name='grillaFac' style=' height=2500px width=100%'></table> <DIV id='pggrillaFac' name='pggrillaFac'></DIV></td></tr></table>"); 
    var usuario = $("#usuario").val(); 
    var clave = $("#clave").val(); 
    creaGrillaFacturas(usuario, clave); 

    function creaGrillaFacturas(usuario, clave) { 
     jQuery("#grillaFac").jqGrid(
     { 
      url:'ajaxFacturas.php?usuario=' + usuario + '&clave=' + clave, 
      datatype: "json", 
      colNames:['Codigo', 'Tipo', 'Fecha/hora Comprobante', 'Comprobante', 'Debito', 'Credito', 'Resumen'], 
      colModel:[ { name:'codigo', index:'codigo', width: 80, sorttype:'int'}, 
         { name:'tipo', index:'tipo'}, 
         { name:'fecha', index:'fecha'}, 
         { name:'numero', index:'numero'}, 
         { name:'debito', index:'debito', align: 'right', formatter:"number", summaryType:'sum' }, 
         { name:'credito', index:'credito', align: 'right', formatter:"number", summaryType:'sum' }, 
         { name:'resumen', index:'resumen', align: 'right'} 
        ], 
      rowNum: 1000, 
      shrinkToFit: true, 
      forceFit:true, 
      loadtext: 'Cargando', 
      //loadonce: true, 
      viewrecords: true, 
      pager: '#pggrilla', 
      altRows: true, 
      sortname: 'codigo', 
      sortorder: "desc", 
      forceFit : true, 
      ignoreCase: true, 
      caption:"Comprobantes encontrados", 
      //jsonReader: { repeatitems : false, id: 'codigo', 
      //subgrid: {root: "rows", repeatitems: false}}, 
      jsonReader: { repeatitems: false, id: 'codigo'}, 
      grouping : true, 
      groupingView : { groupField: ['resumen'], 
          groupSummary: [true], 
          groupColumnShow: [true], 
          groupText: ['<b>Resumen Nro.: {0}</b>'], 
          groupCollapse: false, 
          groupOrder: ['desc']}, 
      subGrid: true, 
      subGridRowExpanded: function (subgrid_id, row_id) { 
       var subgrid_table_id, pager_id; 
       subgrid_table_id = subgrid_id+"_t"; 
       pager_id = "p_"+subgrid_table_id; 
       $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>"); 
       jQuery("#"+subgrid_table_id).jqGrid({ 
        url:"subgrid.php?q=1162&id="+row_id, 
        dataype:"json", 
        colNames: ['Articulos', 'Descripcion', 'Cantidad', 'Precio unitario'], 
        colModel:[ 
         {name:"articulo", index:"articulo", width:100}, 
         {name:"detalle", index:"detalle", width:100}, 
         {name:"cantidad", index:"cantidad", width:100}, 
         {name:"precio", index:"precio", width:100} 
        ], 
        rowNum:20, 
        viewrecords: true, 
        //pager: pager_id, 
        sortname:'articulo', 
        sortorder:"asc", 
        height: '100%' 
       }); 
       //jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false}) 
      } 
     }); 

     jQuery("#grillaFac").jqGrid('hideCol', ['codigo']); 
     jQuery("#grillaFac").jqGrid('navGrid', 'pggrillaFac', 
       {search:true, edit:false, add:false, del:false}); 

     $("#grillaFac").setGridWidth($(window).width()-50); 
     $("#grillaFac").setGridHeight($(window).height()-50); 
    } 
}); 

Ich hoffe, dass Sie mir helfen können: D.

+0

Meinen Sie den SSH-Client PuTTY, was bedeutet, dass Sie SSH in einen Remote-Computer arbeiten, oder beziehen Sie sich auf etwas anderes? –

+0

SSH-Client PuTTY yep, ich benutze, um auf dem Server zu bearbeiten ich denke .. – tzanuttini

+1

Ja, wahrscheinlich verwenden Sie es, um den Server zu verbinden, wo Sie die Arbeit ... ok, ich fragte mich nur, ob es vielleicht eine JS-Bibliothek genannt wurde Kitt oder so etwas. Hmmmm, eine andere Sache, über die ich mich wundere, ist, als du 'depuring' geschrieben hast, hast du vor ein anderes Wort zu schreiben. Wenn ja welches Wort? –

Antwort

1

Der wichtigste Fehler in Ihrem Code ist der Tippfehler: Sie verwenden dataype:"json" anstelle von datatype:"json" als Option von Sub-Grid. Die unbekannte Option dataype wird ignoriert und der Standardwert "xml" der Option datatype wird verwendet. Der Server gibt JSON-Daten zurück, und jqGrid versucht, die Daten als XML-Daten zu analysieren.

Ich empfehle, dass Sie keine Retro-Versionen von jqGrid verwenden. Sie verwenden derzeit jqGrid 4.4.1, das 4 Jahre alt ist. Es entspricht dem Autofahren, das 40 Jahre alt ist. Ich empfehle Ihnen, das kostenlose jqGrid 4.13.2 zu verwenden und es direkt vom CDN zu laden. Sie müssen nur die URLs in jqGrid-Dateien zu den in the wiki article beschriebenen URLs ändern.

Zusätzlich wäre es wichtig, idPrefix Option Subgrid hinzufügen und einige eindeutige Wert als Präfix verwenden. Zum Beispiel können Sie idPrefix: "s_" + row_id + "_" oder idPrefix: subgrid_id oder nur idPrefix: $.jgrid.randId() verwenden. Hinzufügen von key: true in der articulo Spalte scheint auch gut.

+0

Thx so viel, ich muss die Version des ändern jqGrid und füge das Zeichen hinzu. Sie sparen mein Gehalt des Monats: D – tzanuttini

+0

@tzanuttini: Gern geschehen! Ich bin froh, dass ich dir helfen konnte. Ich empfehle Ihnen, Font Awesome hinzuzufügen und 'iconSet:" fontAwesome "' Option zu jqGrid hinzuzufügen, um das Aussehen des Rasters zu verbessern. Siehe [das Beispiel] (http://free-jqgrid.github.io/getting-started/index.html#type_of_data_code) aus der vorläufigen Dokumentation und [dem Wiki-Artikel] (https://github.com/free-jqgrid/jqGrid/wiki). Viele andere neue Funktionen, die ich in free jqGrid implementiert habe, sind in den READMEs zu jeder veröffentlichten Version und im Wiki beschrieben. – Oleg