2014-01-31 92 views
0

这是我所有的jQuery中的子网格代码。我的问题是,我有一个用户下拉。每个用户都有自己的ID,通过GET方法传输。当我选择不同的用户时,我希望在子网格中显示不同的值,但不会在我手动刷新页面(crtl + f5)之后发生。我也使用Ajax和JSON。 这是我的代码:如何在JQgrid中重新加载/刷新子网格?

subGrid : true, 
     subGridRowExpanded: function(subgrid_id, row_id) { 
      //var projectIdRow = $('#list2').jqGrid('getCell',rowId,'projectid'); 
      //alert(row_id); 
      var subgrid_table_id; 
      subgrid_table_id = subgrid_id+"_t"; 
      $("#"+subgrid_id).html("<table id='"+subgrid_table_id+"'></table>"); 
      $("#"+subgrid_table_id).jqGrid({ 
      url:"/taskuri/subGrid/?id="+row_id+"&userid="+userAlocat, 
      datatype: "json", 
      colNames: ['SubTask',' ','Pri','Responsabil','Alocator','Alocat','Deadline','Estimat','Lucrat',' '], 
      colModel: [ 
       {name:"SubTask",index:"SubTask",width:'770%',align:"left",sortable:false}, 
       {name:'finished',index:'finished', width:'42%',sortable:false}, 
       {name:"Pri",index:"Pri",width:'60%', sortable:true}, 
       {name:"Responsabil",index:"Responsabil",width:'144%',sortable:false}, 
       {name:"Alocator",index:"Alocator",width:'140%',sortable:false}, 
       {name:"Alocat",index:"Alocat",width:'122%',sortable:false}, 
       {name:"Deadline",index:"Deadline",width:'122%',sortable:false}, 
       {name:"Estimat",index:"Estimat",width:'84%',align:"right",sortable:false}, 
       {name:"Lucrat",index:"Lucrat",width:'94%',align:"right"}, 
       {name:"Delete",index:"Delete",width:'48%',align:"right"}, 
      ], 
      height: '100%', 
      rowNum:20 
      }); 

     var useridLogat = $("#userid").val(); 
     }, 
     gridComplete: function(){ //afiseaza subgridurile by default 
       var grid = $("#list2"); 
       var svi_id = grid.jqGrid('getDataIDs'); 
       $.each(svi_id, function (index, rowId) { 
        $.post('/taskuri/checkSubtask/', { rowId: rowId}, function(data){ 
         if (data >= 1){ //data reprezinta numarul row urilor din query 
          grid.jqGrid('expandSubGridRow',rowId); 
         }else{ 
          // else ul face , ca userul sa numai dea click pe poza +, asa se evita sa afiseze headurl ala fara date, adica cand nu contine date subgridul 
          $('.sgcollapsed a').remove(); 
          $(".ui-sgcollapsed:eq("+index+")").removeClass("sgcollapsed"); 
         } 
        }); 
       }); 
     }, 

我能做些什么? THX

+0

是的,我知道它的星期五下午:) – Chester

回答

1
//if this textbox 
    $("#textinputID").keyup(function() { 
     reloadJQGrid(); 
    }); 


    //if this dropdown 
    $("#dropdownID").on("change",function() { 
     reloadJQGrid(); 
    }); 
0
try this  

    function reloadJQGrid(){ 

      jQuery.ajax({ 
       type: "post", 
       url: ${contextPath}"/webappName/methodName", 
       cache: false, 
       data:$("#testForm").serialize(), 
       success: function(response) 
       { 
       jQuery("#Testgrid").trigger("reloadGrid"); 
       }, 
       error: function(){ 
        alert(); 
        alert('server errors..'); 
        } 
       }); 
      } 

    //if this textbox 
    $("#textinputID").keyup(function() { 
     reloadJQGrid(); 
    }); 

    //if this dropdown 
    $("#dropdownID").on("change",function() { 
     reloadJQGrid(); 

    }); 
+0

不错,但在这里我要调用此函数? – Chester

+0

和之后当我从下拉列表中选择一个项目时,我总是重新加载整个jqgrid。 – Chester

+0

尝试编辑答案 – user2675617