jqgrid treegrid 重新加载本地数据
首先jqgrid treegrid 加载本地数据的方法如下:
var $gridList = $('#list'); var grid = $gridList.jqGrid({ datatype : 'jsonstring', datastr : data, colModel : [], viewrecords : true, //gridview:true, treeGrid : true, treedatatype : "local", treeGridModel : "adjacency", ExpandColumn : 'name', height : $(window).height() - 240, autowidth : '100%', width : $gridList.parent().width() - 1, jsonReader : { repeatitems : false, root : function(obj) { return obj; }, page : function(obj) { return 1; }, total : function(obj) { return 1; }, records : function(obj) { return obj.length; } } });
其中,不同于treegrid加载远程返回对象的是,需要设置datatype : 'jsonstring',数据也要赋值在datastr属性上
  datatype : 'jsonstring',
  datastr : data,
  treedatatype : "local",
 
加载之后的效果:

 但是在第一次加载之后,还会有后续的查询操作,一般的从服务器返回json形式的数据的时候,代码如下:
$("#list").jqGrid('setGridParam', {
            postData : postData,
            page : 1
        }).trigger('reloadGrid');
网上搜索的treegrid的重新加载的方法,如下:
$jqGrid.jqGrid('setGridParam',{ 
                    url:path+"/admin/demo/getLogsGridJson.do", 
                    postData:{'aaa':111,'bbb':222}, //
                    page:1,
                    treedatatype : 'json'
}).trigger("reloadGrid");
上面这段代码,在以treegrid形式重新加载本地数据的情况下,并不起作用,(我没有调试重新加载远程数据的情况)
在stackoverflow上搜索到一篇文章,代码如下:
$("#list").setGridParam({
    datatype: "jsonstring",
    datastr: init()
}).trigger("reloadGrid", [{page: 1}]);
依然,上面这段代码,在以treegrid形式重新加载本地数据的情况下,并不起作用,(我没有调试重新加载远程数据的情况)
后来实在没有办法,在这个上面耽误的时间已经太多了,终极解决方式:
$("#container").empty();
            $("#container").append('<table id="list"></table>');
清空,重加元素,然后再重新绑定
参考网址:
https://stackoverflow.com/questions/17260450/jqgrid-reload-datatype-local-for-each-request
https://blog.csdn.net/qq_29542611/article/details/74979762
 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号