2013-01-21 71 views
1

我在我的网格有点奇怪的问题,并没有找出原因。我已经创建了几个子网格,并且在这个网格中从来没有遇到过问题,但是我的出生很困难。显示主网格的信息没有任何问题,但子网格不显示任何内容。子网扩展但不显示信息

Screen of browser

也就是说,他甚至成功地提供了PHP的JSON的亚格。我试图享受另一个子网格必须工作,并且我正在更改网址,字段等,只有当我更改主网格的网址时,它才允许我显示。为什么有人知道?在JSON

jQuery("#organismos").jqGrid({ 
    url: 'model/ministerio/mod_organismo.php', 
    colNames:['Cód. Organismo','Data Efetiva','Estado', 'Sigla', 'Designação curta', 'Designação longa', 'Última alteração', 'Alterado pelo utilizador'], 
    colModel:[ 
     {name:'COD_ORG',index:'COD_ORG',width:80, align:'center', editable:true, editrules:{required:true}, editoptions:{size: 5 ,maxlength:4}, formoptions: { elmsuffix: ' *'}}, 
     {name:'DATA_EFETIVA',index:'DATA_EFETIVA',width:100,align:'center',datefmt: 'Y/M/d', editrules:{date:true},editable:true,editoptions:{ size: 11, maxlength: 10,dataInit: function(element) {$(element).datepicker({dateFormat: date_format, autosize:true})}}, formoptions: { elmsuffix: ' *'}}, 
     {name:'ESTADO_DTEF',index:'ESTADO_DTEF',width:50, align:'center',edittype:'select', editoptions:{value:{A:'Ativo',I:'Inativo'}}, editable:true, editrules:{required:true}, formoptions: { elmsuffix: ' *'}}, 
     {name:'SIGLA_ORG',index:'SIGLA_ORG',width:80, align:'center', editable:true, editrules:{required:true}, editoptions:{size: 13 ,maxlength:12}, formoptions: { elmsuffix: ' *'}}, 
     {name:'DESC_C_ORG',index:'DESC_C_ORG', width:150, align:'center', editable:true, editoptions:{size: 31, maxlength:30}}, 
     {name:'DESC_L_ORG',index:'DESC_L_ORG', width:300, align:'center', edittype:'textarea' ,editable:true, editrules:{required:true}, editoptions:{size: 31, maxlength:150}, formoptions: { elmsuffix: ' *'}}, 
     {name:'DATA_ULT_ALT',index:'DATA_ULT_ALT', hidden:true}, 
     {name:'UTILIZADOR',index:'UTILIZADOR', hidden:true} 
    ], 
    sortname: 'DATA_EFETIVA', 
    caption:"Objetivo do Projeto", 
    pager: '#pager1', 
    height:'400', 
    multiselect: false, 
    subGrid: true, 
    subGridOptions: { "plusicon" : "ui-icon-triangle-1-e", 
         "minusicon" :"ui-icon-triangle-1-s", 
         "openicon" : "ui-icon-arrowreturn-1-e", 
         "reloadOnExpand" : false, 
         "selectOnExpand" : 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:"model/objetivos/mod_obj_estrategicos.php?idorg="+row_id, 
      colNames:['Cód. Obj. Estratégico','Data Efetiva','Estado', 'Designação curta', 'Designação longa', 'Peso', 'Última alteração', 'Alterado pelo utilizador'], 
      colModel:[ 
       {name:'COD_OBJ_EST',index:'COD_OBJ_EST', width:80, align:'center', editable:true, editrules:{required:true}, editoptions:{size: 5 ,maxlength:4}, formoptions: { elmsuffix: ' *'}}, 
       {name:'DATA_EFETIVA',index:'DATA_EFETIVA',width:100,align:'center',editable:true,editoptions:{ size: 11, maxlength: 10,dataInit: function(element) {$(element).datepicker({dateFormat: date_format, autosize:true})}}, formoptions: { elmsuffix: ' *'}}, 
       {name:'ESTADO_DTEF',index:'ESTADO_DTEF', width:50, align:'center',edittype:'select', editoptions:{value:{A:'Ativo',I:'Inativo'}}, editable:true, editrules:{required:true}, formoptions: { elmsuffix: ' *'}}, 
       {name:'DESC_C_OBJ_EST',index:'DESC_C_OBJ_EST', width:100, align:'center' ,editable:true, editrules:{required:true}, editoptions:{size: 31 ,maxlength:30}, formoptions: { elmsuffix: ' *'}}, 
       {name:'DESC_L_OBJ_EST',index:'DESC_L_OBJ_EST', width:300, align:'center', edittype:'textarea' ,editable:true, editrules:{required:true}, editoptions:{size: 31 ,maxlength:150}, formoptions: { elmsuffix: ' *'}}, 
       {name:'PESO',index:'PESO', width:50, align:'center',editable:true, editrules:{required:true, number: true}, editoptions:{size: 6 ,maxlength:5}, formoptions: { elmsuffix: ' *'}}, 
       {name:'DATA_ULT_ALT',index:'DATA_ULT_ALT', hidden:true}, 
       {name:'UTILIZADOR',index:'UTILIZADOR', hidden:true} 
      ], 
      rowNum:20, 
      pager: pager_id, 
      sortorder: "asc", 
      editurl:"controller/objetivos/Estrategicos.php?idorg=" +row_id, 
      height: '100%', 
      autowidth: true 
     }); 
     jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:true,add:true,del:true, view:true}); 
    } 
}); 

结果从电网1:在JSON

{"page":"1","total":1,"records":"3","rows":[{"id":"1 ","cell":["1 ","2012\/10\/24","Ativo","Ta","funcionar?","OK","2012\/10\/18 13:49:35","1"]},{"id":"21 ","cell":["21 ","2012\/10\/31","Ativo","aa","aaa","oaa","2013\/01\/17 10:59:52","1"]},{"id":"12 ","cell":["12 ","2013\/01\/09","Ativo","TEJO","rio","rio","2013\/01\/03 18:21:40","1"]}]} 

导致电网2当我选择在网格1行:

{"page":"1","total":1,"records":"3","rows":[{"id":"AAASwaAAEAAAAC7AAA","cell":["12 ","2013\/01\/03","Ativo","1","1","1","2013\/01\/18 15:00:46","1"]},{"id":"AAASwaAAEAAAAC\/AAA","cell":["3 ","2012\/11\/01","Ativo","Barcelona","Juventus","14.9","2012\/12\/28 14:49:57","1"]},{"id":"AAASwaAAEAAAAC8AAB","cell":["4 ","2012\/12\/24","Ativo","Sim","ok","75.69","2012\/12\/28 14:50:33","1"]}]} 
+0

您应该提供创建jqGrid的JavaScript代码。莫罗弗有一个测试JSON数据是非常重要的,这些数据用于填充主网格和子网格,这些数据不会被消耗。典型的错误可能是'id'重复或其他一些不清楚的与ID工作。请参阅[答案](http://stackoverflow.com/a/14381550/315935)作为此类问题的示例。 – Oleg

+0

@ Oleg是的,但我不认为它会。在这个变化之前,我有两个网格携带一排网格“身体”,并在所有其他关于此ID的网格信息中显示。现在想要改进它,而不是去摸索。 (已经编辑了主帖) – UZUMAKI

+0

你没有发布任何JSON测试数据。一个需要用于主网格的JSON和用于子网格的JSON。在jqGrid中不使用'idPrefix'。所以你可以很容易地收到id重复的问题。 – Oleg

回答

1

就像我以前写过已经评论问题的原因是错误的值id。如果一个删除IDS("1 ""1""21 ""21""12 ""12")尾部的空格原来non-working gridworking

enter image description here

+0

我只是觉得它有点,也改变了整个数据库。无论如何,再次非常感谢你。 – UZUMAKI

+1

@UZUMAKI:不客气! – Oleg

+0

我会再问一个问题,不必打开另一个主题。如何知道扩展子网格的时间有一个确定的高度,有时对主网格来说太清楚了。有没有什么方法根据网格的可用空间来设置大小? – UZUMAKI

0

我不知道我是缺少在这里,但我不能在子网格中查找数据,虽然我在父网格中看到数据并且能够扩展它...

var myData = 
    {"page":"1","total":"1","records":"2","rows":[{"id":"591","cell":["07/10/2013","Vas Editor","Workflow Transfer","All","1","591","null","2013-07-10 11:00:22",{"cell":["07/10/2013","Vas Editor","Workflow Transfer","All","1","591","null","2013-07-10 11:00:22",null]}]},{"id":"592","cell":["07/10/2013","Vas Editor","Pending Requirements","All","2","592","null","2013-07-10 11:00:35",{"cell":["07/10/2013","Vas Editor","Pending Requirements","All","2","592","null","2013-07-10 11:00:35",null]}]}],"message":"" 
    }; 


    jQuery("#noteTable").jqGrid({ 
    datatype : "local",  
    colNames : [ 'Date', 'User Name', 'Tag(s)', 'Applicant', 'Note', 'Id','Applicant Id','Date TS','subRow'], 
    colModel : [ 
     {name : 'date', index : 'date', width : 120 }, 
     {name : 'userName', index : 'userName', width : 150 }, 
     {name : 'tags', index : 'tags', width : 150 }, 
     {name : 'applicant', index : 'applicant', width : 150, editable : true }, 
     {name : 'note', index : 'note', width : 150 }, 
     {name : 'id', index : 'id', hidden : true } , 
     {name : 'applicantId', index : 'applicantId', hidden : true}, 
     {name : 'dateTS', index : 'dateTS', hidden : true}, 
     {name : 'subRow', index : 'subRow', hidden : true} 

    ], 
    rowNum : 10, 
    rowList : [ 10, 20, 30 ], 
    pager : '#notesTablePager', // un comment this line to see the pagination bar 
    sortname : 'dateTS', 
    viewrecords : true, 
    sortorder : "desc", 
     idPrefix: "m", 
subGrid: true, 
subGridRowExpanded: function(subgrid_id, row_id) { 
var data = $("#noteTable").jqGrid("getLocalRow", row_id); 
// we pass two parameters 
// subgrid_id is a id of the div tag created within a table 
// the row_id is the id of the row 
// If we want to pass additional parameters to the url we can use 
// the method getRowData(row_id) - which returns associative array in type name-value 
// here we can easy construct the following 
console.log('row_id****'+row_id); 
console.log('searchData *****'+searchData); 
    console.log('myData *****'+myData); 
    var localRowData1 = $(this).jqGrid('getLocalRow', row_id); 
    var localRowData = $("#noteTable").jqGrid('getLocalRow', row_id).cell; 
    console.log('localRowData1 ***************'+localRowData1); 
    console.log('localRowData ***************'+localRowData); 

    var subgrid_table_id; 
    var subgridTableId = subgrid_id + "_t"; 
    $("#" + subgrid_id).html("<table id='" + subgridTableId + "'></table>");  
    $("#" + subgridTableId).jqGrid({  
     datatype: "local",    
     data: data.cell, 
     colNames : [ 'Date', 'User Name', 'Tag(s)', 'Applicant', 'Note', 'Id','Applicant Id','Date TS' ], 
     colModel : [ 
        {name : 'date', index : 'date', width : 120 }, 
        {name : 'userName', index : 'userName', width : 150 }, 
        {name : 'tags', index : 'tags', width : 150 }, 
        {name : 'applicant', index : 'applicant', width : 150, editable : true }, 
        {name : 'note', index : 'note', width : 150 }, 
        {name : 'id', index : 'id', hidden : true } , 
        {name : 'applicantId', index : 'applicantId', hidden : true}, 
        {name : 'dateTS', index : 'dateTS', hidden : true} 
    ], 
     height: '100%', 
     rowNum:20, 
     sortname: 'Date', 
     sortorder: "desc", 
     idPrefix: "s_" + row_id + "_" 
    }) 

} 

}).navGrid('#notesTablePager', {add : false, edit : false, del : false}); 
$("#noteTable").setGridParam({datatype : 'json',loadonce : true}); 
$("#noteTable")[0].addJSONData(myData); 
$("#noteTable").setGridParam({datatype : 'local'}); 
$("#noteTable").setGridParam({pagination : true}); 
$("#notesResultDiv").css("display", "inline"); 
$("#noteTable").trigger('reloadGrid'); 
+0

欢迎来到SO。你回答似乎有点令人困惑,因为你回答了这个问题,但自相矛盾说:“我不确定我在这里失踪了什么,但是我无法在子网格中找到数据,尽管我在父网格中看到数据并且能够扩展它。 ...“。将来,请确保您在发布之前已经完全审核了您的答案(已经过测试)。 – Brian