解决JQuery EasyUI 加载两次url的问题

1、传统方式

 1  $(function () {
 2             var url = "../Source/Query/jhDataQry.ashx?action=query";
 3             $(dg).datagrid({
 4                 url: url,
 5                 queryParams: {
 6                     qsrq: qsrq,
 7                     zzrq: zzrq
 8                 }
 9             });
10         })
11 
12  <table id="DataGrid" class="easyui-datagrid" fit="true" border="false" toolbar="#TBar" pagination="true" 
13           data-options="pageSize:20,pageList: [10, 20, 30, 40, 50,100,5000],idField:'chjid',sortName:'chjbh', queryParams: { 'action': 'query'}" 
14           rownumbers="true" singleSelect="true" url="../Source/JiChu/chjdoc.ashx">  
15         <thead>  
16             <tr>
17             </tr>  
18         </thead>  
19     </table>  

2、原因分析及解决方案

html代码中利用class声明了datagrid,导致easyUI解析class代码的时候先解析class声明中的datagrid,这样组件就请求了一次url;然后又调用js初始化代码请求一次url。这样导致了重复加载,解决的方法就是只用一种初始化方法来声明easyUI组件以避免重复的提交请求,即删除html中的class声明(class="easyui-datagrid"),修改后的代码如下:

1 <table id="DataGrid"  fit="true" border="false" toolbar="#TBar" pagination="true" 
2 13           data-options="pageSize:20,pageList: [10, 20, 30, 40, 50,100,5000],idField:'chjid',sortName:'chjbh'" 
3 14           rownumbers="true" singleSelect="true" url="../Source/JiChu/chjdoc.ashx">  
4 15         <thead>  
5 16             <tr>
6 17             </tr>  
7 18         </thead>  
8 19     </table>  

 

posted @ 2012-12-16 22:52  EasyPass  阅读(18081)  评论(2编辑  收藏  举报