【问题标题】:How to reload/refresh subgrid in JQgrid?如何在 JQgrid 中重新加载/刷新子网格?
【发布时间】:2014-01-31 14:50:44
【问题描述】:

这是我在 jquery 中的所有子网格代码。我的问题是,我有一个用户下拉菜单。每个用户都有自己的 id ,通过 GET 方法传输。当我选择不同的用户时,我希望在子网格中显示不同的值,但它不会在我手动刷新页面 (crtl + f5) 之后发生。我也使用 ajax 和 json 。 这是我的代码:

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");
                        }
                    });
               });
        },

我能做什么?谢谢

【问题讨论】:

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

标签: jqgrid reload subgrid


【解决方案1】:
  //if this textbox
     $("#textinputID").keyup(function() { 
      reloadJQGrid();
    }); 


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

【讨论】:

    【解决方案2】:
    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();
    
        });
    

    【讨论】:

    • 当我从下拉列表中选择一个项目后,我总是重新加载整个 jqgrid。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多