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

项目中,使用到了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...
                }
            }
      });
});

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值