1

私は自分のグリッドで少し奇妙な問題を抱えており、その理由がわかりません。私はいくつかのサブグリッドを作成しましたが、このグリッドで問題が発生したことはありませんが、出産は困難です。メイン グリッドの情報は問題なく表示されますが、サブグリッドには何も表示されません。

ブラウザの画面

つまり、php json をサブグリッドに提供することにも成功しました。別のサブグリッドが機能する必要があり、URL、フィールドなどを変更していましたが、メイングリッドの URL を変更した場合にのみ、表示できるようになりました。なぜ誰かが知っているのですか?

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"]}]}

グリッド 1 で行を選択すると、グリッド 2 から JSON が生成されます。

{"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"]}]}
4

2 に答える 2

1

以前コメントで書いたように、問題の理由はの値が間違っていることですid"1 "ID( to "1""21 "to "21""12 "to )から末尾のスペースを削除すると"12"、元の機能していないグリッド機能します。

ここに画像の説明を入力してください

于 2013-01-22T13:07:46.623 に答える
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');
于 2013-07-11T23:01:17.653 に答える