Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何动态生成jquery jqgrid?_Json_Jquery_Jqgrid - Fatal编程技术网

Json 如何动态生成jquery jqgrid?

Json 如何动态生成jquery jqgrid?,json,jquery,jqgrid,Json,Jquery,Jqgrid,当前的需求是点击按钮,我通过ajax获取json数据,其中包含关于表头和数据的信息。 我想使用jqgrid显示表数据,因此我正在使用以下代码准备jqgrid: $("#fixedId").jqGrid({ datatype: 'clientSide', colNames:colName,//from json response colModel :colModels,//from json response

当前的需求是点击按钮,我通过ajax获取json数据,其中包含关于表头和数据的信息。 我想使用jqgrid显示表数据,因此我正在使用以下代码准备jqgrid:

$("#fixedId").jqGrid({ 
        datatype: 'clientSide',
        colNames:colName,//from json response
        colModel :colModels,//from json response
                   pager: '',
                   shrinkToFit:true,
                   autowidth:true,
                   rowNum:10,
                   rowList:[10,20,30],
                   emptyrecords: "Empty records",
                   viewrecords: true,
                   width: '100%',
                   height: '100%',
                   altRows:true,
                   scrollOffset: 0,
                   gridview: true,
                   rownumbers:false,
                   multiselect:false,
                   multiboxonly:false,
                   caption: ''         
    }); 

    $("#"+tableId).jqGrid('gridResize', { minWidth: 450, minHeight: 200 });
我使用jqgrid
addRowData
函数将数据添加到这个新创建的表中

所以事情第一次进展顺利。 现在,当我得到一个新的json响应来通过ajax绘制这个新表的细节时,我必须删除旧表, 所以我试着删除旧表数据

1)
$(“#fixedd”).remove()
使用..重新创建表标记

$("#tableParent").append('<table id=fixedId><tr><td /></tr></table>');
重复步骤1生成新表并添加数据。同样的结果。我在屏幕上看不到任何表

3) 我试过了

这个选项是可行的,但在重新绘制3-4次新表格后,我可以看到每个被绘制的表格看起来都有点扭曲,在重新绘制一些表格后,使用表格变得很困难


任何解决方案,如如何删除旧的jqgrid并创建新的/干净的jqgrid以使其工作顺畅?

jqgrid创建一些元素(div)并将表包装在这些div中。调用
$(“#fixedd”).remove()不会破坏那些额外的元素。
你应该使用

$("#tableParent").children().remove()
这将完全破坏jqGrid,因此您可以创建一个新的jqGrid。 在调用
$(“#fixedd”).jqGrid()之前,请确保
#tableParent
中没有任何其他元素,否则它也将消失我假设您具有以下结构:

<div id="tableParent">
    <table id="fixedId"></table>
</div>
$("#tableParent").children().remove()
<div id="tableParent">
    <table id="fixedId"></table>
</div>
$("#tableParent").empty();