如何重新加载数据 jqGrid
How to Reload Data jqGrid
我正在使用 jqGrid,在调用 jstree 事件后刷新数据时遇到问题。
我正在关注这个 post。确切地说,我不知道该把它放在哪里。
这是我的代码。我该怎么办?
$('#jsTree_DonVi').on('changed.jstree', function (e, data) {
var id = data.instance.get_node(data.selected[0]).id;
var text = data.instance.get_node(data.selected[0]).text;
var tinhTrang = 0;
var nam = 0;
// I tried but it's not working
$("#jqGrid").setGridParam({ datatype: 'json' });
$("#jqGrid").trigger("reloadGrid");
//---
$("#jqGrid").jqGrid({
url: '/Home/GetData',
postData: {
"id": id,
"nam": nam,
"tinhTrang": tinhTrang
},
datatype: "json",
colModel: [
{
label: 'Tên công trình', name: 'Ten', sorttype: 'string', width: 800, align: 'center'
},
{ label: 'Kế hoạch/Thực hiện', name: 'KHTH', sorttype: 'string', align: 'center' },
{ label: 'Địa điểm xây dựng', name: 'DiaDiem', sorttype: 'string', align: 'center' }
],
viewrecords: true, // show the current page, data rang and total records on the toolbar
rowNum: 30,
width: 1228,
height: 500,
loadonce: true,
pager: "#jqGridPager"
})};
我的HTML:
<div id="renderTable">
<table id="jqGrid"></table>
<div id="jqGridPager"></div>
</div>
解决方法在这里:
我从 Guriddo jqGrid JS to Free jqGrid 更改了我的 jqGrid。
并替换
$("#jqGrid").setGridParam({ datatype: 'json' });
$("#jqGrid").trigger("reloadGrid");
到
$("#jqGrid").jqGrid('GridUnload');
我认为问题存在是因为您在事件处理程序 ([=12=) 中创建了网格。重要的是要了解 jqGrid 在相对复杂的表和 div 结构中转换初始空 <table id="jqGrid"></table>
。有关详细信息,请参阅 the post。
您可以通过使用 GridUnload
方法来解决问题。您可以替换行
$("#jqGrid").setGridParam({ datatype: 'json' });
$("#jqGrid").trigger("reloadGrid");
与线
$("#jqGrid").jqGrid("GridUnload");
GridUnload
的实现可能取决于您使用的 jqGrid 的分支 (free jqGrid, Guriddo jqGrid JS or an old jqGrid in version <=4.7). I develop the fork free jqGrid, which I would recommend you. You can use it from CDN (see the wiki article) or to install from one from well-known JavaScript repositories: npm, bower, NuGet or WebJars (see the readme)。
我正在使用 jqGrid,在调用 jstree 事件后刷新数据时遇到问题。
我正在关注这个 post。确切地说,我不知道该把它放在哪里。
这是我的代码。我该怎么办?
$('#jsTree_DonVi').on('changed.jstree', function (e, data) {
var id = data.instance.get_node(data.selected[0]).id;
var text = data.instance.get_node(data.selected[0]).text;
var tinhTrang = 0;
var nam = 0;
// I tried but it's not working
$("#jqGrid").setGridParam({ datatype: 'json' });
$("#jqGrid").trigger("reloadGrid");
//---
$("#jqGrid").jqGrid({
url: '/Home/GetData',
postData: {
"id": id,
"nam": nam,
"tinhTrang": tinhTrang
},
datatype: "json",
colModel: [
{
label: 'Tên công trình', name: 'Ten', sorttype: 'string', width: 800, align: 'center'
},
{ label: 'Kế hoạch/Thực hiện', name: 'KHTH', sorttype: 'string', align: 'center' },
{ label: 'Địa điểm xây dựng', name: 'DiaDiem', sorttype: 'string', align: 'center' }
],
viewrecords: true, // show the current page, data rang and total records on the toolbar
rowNum: 30,
width: 1228,
height: 500,
loadonce: true,
pager: "#jqGridPager"
})};
我的HTML:
<div id="renderTable">
<table id="jqGrid"></table>
<div id="jqGridPager"></div>
</div>
解决方法在这里:
我从 Guriddo jqGrid JS to Free jqGrid 更改了我的 jqGrid。
并替换
$("#jqGrid").setGridParam({ datatype: 'json' });
$("#jqGrid").trigger("reloadGrid");
到
$("#jqGrid").jqGrid('GridUnload');
我认为问题存在是因为您在事件处理程序 ([=12=) 中创建了网格。重要的是要了解 jqGrid 在相对复杂的表和 div 结构中转换初始空 <table id="jqGrid"></table>
。有关详细信息,请参阅 the post。
您可以通过使用 GridUnload
方法来解决问题。您可以替换行
$("#jqGrid").setGridParam({ datatype: 'json' });
$("#jqGrid").trigger("reloadGrid");
与线
$("#jqGrid").jqGrid("GridUnload");
GridUnload
的实现可能取决于您使用的 jqGrid 的分支 (free jqGrid, Guriddo jqGrid JS or an old jqGrid in version <=4.7). I develop the fork free jqGrid, which I would recommend you. You can use it from CDN (see the wiki article) or to install from one from well-known JavaScript repositories: npm, bower, NuGet or WebJars (see the readme)。