我不确定什么是错的,但这不适用于我,下面是我的代码,但是重新加载不会向服务器创建任何请求。
$("#timecard-summary-grid").jqGrid({
url:'grid/grid_timecard_summary.php',
datatype: 'xml',
mtype: 'GET',
colNames:['Date','Day','Time In','Time Out','Normal','Late','Undertime'],
colModel :[
{name:'date', index:'date', width:90, editable:false, align:"center", editrules:{required:true}},
{name:'day', index:'day', width:70, editable:false, align:"center", editrules:{required:true}},
{name:'t_in', index:'t_in', width:80, editable:false, align:"center", editrules:{required:true}},
{name:'t_out', index:'t_out', width:80, editable:false, align:"center", editrules:{required:true}},
{name:'tdiff', index:'tdiff', width:80, editable:false, align:"center", editrules:{required:true}},
{name:'late', index:'late', width:80, editable:false, align:"center", editrules:{required:true}},
{name:'undertime', index:'undertime', width:80, editable:false, align:"center", editrules:{required:true}}
],
height: 'auto',
pager: '#timecard-summary-pager',
rowNum:10,
rowList:[10,20],
sortname: 'date',
sortorder: 'desc',
loadonce: true, // to enable sorting locally
viewrecords: true,
gridview: true,
editurl: 'grid_summary_editurl.php',
caption: '<span style="margin-left:10px;">Timecard Summary</span>',
});
$("#timecard-summary-grid").jqGrid('navGrid',"#timecard-summary-pager",
{edit:false,add:false,del:false,search:true,refresh:true},
{zIndex:5234}, //option for edit
{zIndex:5234}, // for add
{zIndex:5234}, // del
{zIndex:5234, multipleSearch:true, multipleGroup:true} // search
);
$("#timecard-summary-id").jqGrid("setGridParam",{datatype:"xml"}).trigger("reloadGrid");
我应该把扳机放在哪里?
答案 0 :(得分:2)
首先,您发布的代码(jqGrid("setGridParam",datatype:"xml"})
)包含语法错误:没有打开的'{'。我希望问题仅存在于您的问题文本中,而不是原始代码中。
下一个问题:您尝试更改datatype
并在创建网格后直接重新加载网格 。问题是你在jqGrid中使用datatype: 'xml'
。因此,在创建网格之后,将立即按照ajax发送对服务器的请求。在挂起的Ajax请求期间重新加载网格的请求将被忽略,不会重新加载。
在完成对服务器的Ajax请求后,datatype
将从'xml'
更改为'local'
,对应于选项loadonce: true
。所以只有在第一个响应完全处理后才能执行代码
$("#timecard-summary-id").jqGrid("setGridParam", {datatype: "xml"})
.trigger("reloadGrid");