easyui datagrid初始化时,action执行了2次

来源:互联网 发布:mac修改hosts文件翻墙 编辑:程序博客网 时间:2024/04/20 14:32

项目中,使用到了easyui框架的datagrid控件,可是在初始化加载数据的时候,控制器的action执行了2次,这样就多出了一次查询数据的过程,虽然在页面上看不出来有第二次加载的存在,但实际存在的问题,总是让人心里不爽。


table标签:

<table id="List" style="width:100%;height:100%"></table>

datagrid的初始化代码:

$(function () {        $('#List').datagrid({            url: '/xxxx',            width: ...,            height:...,            methord: 'post',            ...                  });});


在不明原因的情况下,在网上翻阅了很多帖子,但都是千篇一律,各种去掉table标签中的class="easyui-datagrid",感觉这是一条万能的解决方案,但实际情况并非如此。

但在无意间,看到一个说明是,重复请求url是因为在js中给这个easyui表格加了双击事件和右键事件。

恰巧我的表格就有双击事件,查看了下,代码如下:

$(function () {        $("#List").datagrid({            onDblClickRow: function (rowIndex, rowData) {                var row = $('#List').datagrid('getSelected');                if (row != null) {                    ......DO SOMETHING...                }            }        });    });
在页面初始化时,这个双击操作也要跟着初始化,所以在初始化时,表格操作两次,url也就执行了两次。

然后尝试将该双击事件放到表格的初始化中,并将原表格的双击事件注释掉,修改如下:

$(function () {        $('#List').datagrid({            url: '/xxxx',            width: ...,            height:...,            methord: 'post',            ...            onDblClickRow: function (rowIndex, rowData) {                var row = $('#List').datagrid('getSelected');                if (row != null) {                    ...DO SOMETHING...                }            }      });});

调试后发现,问题没有了。减少了一次对表格的操作,也就减少了一次请求。



 
阅读全文
0 0
原创粉丝点击