我正在使用方法addJsonRows将本地数据添加到jQgrid.由于此方法禁用排序,我需要另一种解决方案.一个限制:我无法设置url并从服务器获取数据,因为数据是通过另一个组件传递的.
在片段下方启发了案例.注释行显示限制,我通过定义一个局部变量来替换它以获得测试用例.
<script type="text/javascript" language="javascript">
function loadPackageGrid() {
// Get package grid data from hidden input.
// var data = eval("("+$("#qsmId").find(".qsm-data-packages").first().val()+")");
var data = {
"page": "1",
"records": "2",
"rows": [
{ "id": "83123a", "PackageCode": "83123a" },
{ "id": "83566a", "PackageCode": "83566a" }
]
};
$("#packages")[0].addJSONData(data);
};
$(document).ready(function() {
$("#packages").jqGrid({
colModel: [
{ name: 'PackageCode', index: 'PackageCode', width: "110" },
{ name: 'Name', index: 'Name', width: "300" }
],
pager: $('#packagePager'),
datatype: "local",
rowNum: 10000,
viewrecords: true,
caption: "Packages",
height: …Run Code Online (Sandbox Code Playgroud) 我在一个页面中使用两个jqgrids.我使用的第二个网格,loadonce: true因为我需要在第二个网格中进行列排序.我需要在服务器回发后重新加载两个网格.(需要在第二个网格中显示更新的值).第一个网格重新加载很好,因为它不会使用该loadonce属性.我的问题是我们可以一起使用loadonce属性reloadGrid吗?(通过loadonce动态设置属性到网格)或者在这种情况下我是否需要进行服务器端排序?请指教.提前致谢.
如果您有17条记录并且一次显示15条记录,那么当您在第2页时,您会看到17-17的记录 - 这是有意义的.
现在当你进入第二页并且你点击导航上的重载按钮(设置数据类型='json')时网格重新加载导航显示网格显示16-30的17.这似乎是一个bug - 有解决方法吗?
网格仍然有17行 - 但是当它应该只显示两行(16-17)时,它试图在第二页上显示完整的15行(rowNum)设置.导航分页文本不正确(当只有17行时指30行).
它在jqgrid文档中声明下面的代码应允许使用服务器端分页进行本地排序; 网格数据在分页时消失; 之前已经问过这个问题没有明确的答案 - 使用loadonce的建议:true表示分页已关闭 - 我需要分页
稍后编辑完整的html页面和json响应(我现在从php/mysql后端运行).
我的完整HTML页面
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>JQGrid Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="../dojoproject/jquery-ui-1.8.16.custom/css/start/jquery-ui-1.8.16.custom.css">
<link rel="stylesheet" type="text/css" href="jquery.jqGrid-4.3.1/css/ui.jqgrid.css">
<style type="text/css">
html, body {
margin: 0;
padding: 0;
font-size: 90%;
}
</style>
<script type="text/javascript" src="../dojoproject/jquery-ui-1.8.16.custom/js/jquery-1.6.2.min.js" ></script>
<script type="text/javascript" src="../dojoproject/jquery-ui-1.8.16.custom/js/jquery-ui-1.8.16.custom.min.js" ></script>
<script type="text/javascript" src="jquery.jqGrid-4.3.1/js/i18n/grid.locale-en.js" ></script>
<script type="text/javascript" src="jquery.jqGrid-4.3.1/js/jquery.jqGrid.min.js" ></script>
<script type="text/javascript" src="../dojoproject/jqGrid-4.1.2/js/JSON-js/json2.js" ></script>
<script>
$(function() {
$('#table').jqGrid({
jsonReader : {
repeatitems: false,
cell:"",
id:"0"
},
height:'auto',
url:'/jqgrid/orderdetails.php', …Run Code Online (Sandbox Code Playgroud) 正如您在此图片中看到的那样

我的数据库上有13条记录,但是寻呼机说它只有1页(有10行),这是不正确的.
我的.js代码的相关部分
function cria(){
$("#grid").jqGrid({
datatype: 'json',
url: 'json.jsp',
jsonReader: {repeatitems: false},
pager: '#paginado',
rowNum: 10,
rowList: [10,20,30],
emptyrecords: "Não há registros.",
recordtext: "Registros {0} - {1} de {2}",
pgtext: "Página {0} de {1}",
colNames:['Código','Descrição'],
colModel:[
{name:'codigo', width:80, sorttype:"int", sortable: true, editable: false},
{name:'descricao', width:120, sortable: true, editable: true, editrules:{required:true}}
],
viewrecords: true,
editurl:"dadosGrid.jsp?edit=true",
caption: "Grupos",
hiddengrid: true
});
$("#grid").jqGrid('navGrid','#paginado',{},
{edit:true,url:"Adm?aux=edit",closeAfterEdit:true,reloadAfterSubmit:true},
{add:true,url:"Adm?aux=add",closeAfterAdd:true,reloadAfterSubmit:true},
{del:false},
{search:true},
{refresh:true});
};
Run Code Online (Sandbox Code Playgroud)
我的.jsp代码的相关部分
String json = "[";
for (UserAux user : users ){
json += …Run Code Online (Sandbox Code Playgroud) 我正在使用jqgrid 3.8.2,我正在尝试使用下面的代码从服务器端重新加载数据并显示特定页面,如当前页面.$( "#mygrid")setGridParam({数据类型:JSON})触发.( "reloadGrid",[{页:5}]); 网格可以正确地从服务器加载数据,但总是显示第一页而不是第5页.任何人都可以帮我一个忙吗?
关心西蒙