2013-04-30 67 views
0

hello任何人都可以告诉我包含子网格值的本地数据的json格式。 我用下面的格式,但子网格数据不加载到子网格表中。子网格的JSON格式

var data=[{"Left_ssr_id":CaGM33098,"Mismatches":"6","Gaps":"1","AlignLen":"1119","Identity":"99.37","right_ssr_start":17308507,"Qstart":"33","query":"AB-Contig743","subject":"Ca7","Send":"17305359","Score":"2113","Evalue":"0.0","Left_ssr_end":17293825,"right_ssr_end":17308542,"right_ssr_id":CaGM33099 ,"Sstart":"17304241","Qend":"1150","Left_ssr_start":17293811,subgrid:[{"Right_ssr_start":17308507,"Right_ssr_end":17308542},{"Right_ssr_start":17308506,"Right_ssr_end":17308543}]}] 

用于上传数据的代码。网格获取数据,但子网格仅显示标题和空白行。

$(document).ready(function(){ 
$("#blastform").submit(function(){ 
    jQuery.ajax({ 
     data: $(this).serialize(), 
     url: this.action, 
     type: this.method, 
    dataType: "json", 
     error: function() { 
      $(thistarget).html("<span class='error'>Failed to submit form!</span>"); 
     }, 
     success: function(res) { 
    var data=res; 
$("#datatable").jqGrid({ 
    datatype:"local", 
    data:data, 
    colNames:['QueryID','SubjectID', . . . 'Right_nearest_distance'], 
    colModel:[ {name:'query',index:'query', width:55}, 
     {name:'subject',index:'subject', width:80}, 
     ., 
     ., 
     {name:'right_near_dist',index:'right_near_dist', width:50, sortable:false}, ], 
    rowNum:100, 
    rowList:[100,200,500], 
    pager: $('#pager2'), 
    sortname: 'QueryID', 
    viewrecords: true, 
    sortorder: 'desc', 
    loadonce: true, 
    altRows: true, 
    pgbuttons: true, 
    subGrid : true, 
    subGridUrl: 'local', 
    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({ 
    datatype: "local", 
    colNames: ['ssr_start','ssr_end'], 
    colModel: [ {name:"Right_ssr_start",index:"Right_ssr_start",width:80,key:true}, 
      {name:"Right_ssr_end",index:"Right_ssr_end",width:130}, 
      ], 
    rowNum:20, 
    pager: pager_id, 
    sortname: 'ssr_start', 
    sortorder: "asc", 
    height: '100%' }); 
    jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:false,del:false}) }, 
    caption: 'Blast Results' 
    }); 
    $("#datatable").jqGrid('navGrid','#pager2', {position: 'right'}); 
    jQuery("#datatable").jqGrid('navGrid','#blastresults',{edit:false,add:false,del:false}); 

     } 
    }) 
    return false; 
    } 
); 
); 
+0

知道如何为jqGrid提供数据很重要。你是否使用'datatype:“local”'data:data'? “colModel”中如何定义网格列?哪些数据字段是唯一的,因此可以用作rowid?如果你使用数据发布服务器的响应(如果你使用'datatype:“json”'),那么你应该使用其他jqGrid选项。所以你应该把更多的信息附加在你的问题上。 – Oleg 2013-04-30 15:57:24

+0

@Oleg:我提供了我用来为jqgrid提供数据的脚本。 – Dadu 2013-05-01 10:16:11

+0

单独调用ajax并使用'datatype:“local”,data:data'是错误的。你会有很多缺点。 jqGrid为case提供'datatype:“json”'类型。可以使用其他选项,如'jsonReader'和'jsonmap'来通知jqGrid如何从服务器响应中获取有关网格数据的信息。你的主要问题是关于子网格,但代码不显示你如何填充子网格。我会参考另一个可能可以帮助你的老问题来写简短的答案。 – Oleg 2013-05-01 10:35:12

回答

0

我不建议你做单独的AJAX调用和使用datatype: "local", data: data。你会有很多缺点。 jqGrid提供datatype: "json"类型的情况。可以使用其他选项,如jsonReaderjsonmap来通知jqGrid如何从服务器响应中获取有关网格数据的信息。

您发布的var data的值提供了错误的数据。您使用未定义的变量CaGM33098CaGM33099。如果您使用从服务器响应中删除的&,则会在服务器上生成错误的JSON响应。另外奇怪的是subgrid如果data数组中的项不包含在"中。大概从this.action服务器返回(???什么是this这里580)以下数据

[ 
    { 
     "Left_ssr_id": "CaGM33098", 
     "Mismatches": "6", 
     "Gaps": "1", 
     "AlignLen": "1119", 
     "Identity": "99.37", 
     "right_ssr_start": 17308507, 
     "Qstart": "33", 
     "query": "AB-Contig743", 
     "subject": "Ca7", 
     "Send": "17305359", 
     "Score": "2113", 
     "Evalue": "0.0", 
     "Left_ssr_end": 17293825, 
     "right_ssr_end": 17308542, 
     "right_ssr_id": "CaGM33099", 
     "Sstart": "17304241", 
     "Qend": "1150", 
     "Left_ssr_start": 17293811, 
     "subgrid": [ 
      { 
       "Right_ssr_start": 17308507, 
       "Right_ssr_end": 17308542 
      }, 
      { 
       "Right_ssr_start": 17308506, 
       "Right_ssr_end": 17308543 
      } 
     ] 
    } 
] 

The old answerthe answer显示一个如何实现为亚格显示嵌套的数据。 Another answer显示如何使用userdata直接从服务器加载嵌套数据。我建议你使用最后一种方法。