本文主要是介绍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>
因为碰见一个非常奇怪的问题,一个页面的datagrid正常,另一个页面的datagrid两次调用action代码,比较两个页面datagrid的使用方法,并没有不同。后经仔细debug,发现问题所在:bug出在分页上。
因为两个页面的datagrid都有分页,所以在action中生成一个page对象,page对象中total由dao组件设置,正常的页面page设置正确,另一个页面page中的total变成了0,因为total=页大小*(页数-1)+最后也记录数,我估计因为此导致表格判断分页设置变化了,再一次提交表格刷新数据。
这篇关于easyui 重复提交url的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!