连续几个 ajax 请求可能会导致数据返回为空
(1)每次可能返回最后一个正确数据行,但前面两个数据为空。
initPayerDg(); initHouseDg(); initContractDg();
(2)改成返回中再调用下一个,每次都能正确返回。
function initPayerDg() { $('#payerListDg').datagrid({ url : '/rest/payer/owners?pyrnum=' + PNO, onLoadSuccess:function(data){ initHouseDg(); } }); //$('#payerListDg').datagrid("reload"); } function initHouseDg() { $('#houseListDg').datagrid({ url : '/rest/payer/houses?pyrnum=' + PNO, onLoadSuccess:function(data){ if(data.length>0){ $('#houseListDg').datagrid("selectRow",'0'); } initContractDg(); } }); // $('#houseListDg').datagrid("reload"); } function initContractDg() { $('#contractListDg').datagrid({ url : '/rest/payer/contracts?pyrnum=' + PNO }); // $('#contractListDg').datagrid("reload"); }
(3)dataGrid 设置了 url,会自动加载一次数据,不需要用 reload。
(4)解决 easyui datagrid控件页面载入时,两次请求 url 的 json 数据问题,因为如上在 js 设置 url, 会自动调用一次。所以需要注释掉 <table id="payerListDg" <%--class="easyui-datagrid"--%>.../>