如何使用Ajax验证检查列

7nbnzgx9  于 2022-09-26  发布在  其他
关注(0)|答案(1)|浏览(147)

在用户更改其状态之前,需要验证网格中的检查列:

{
    xtype: 'checkcolumn',
    dataIndex: 'add',
    width: 70,
    text: 'Add',
    listeners: {
        beforecheckchange: 'onPermissionChangeCheckAllowed'
    }
}

目前,onPermissionChangeCheckAllowed使用syncAjax进行验证,如:

onPermissionChangeCheckAllowed: function (chk, rowIndex, checked, record, e, eOpts) {
   var result = Ext.Ajax.request({
                  async: false,
                  url: '/checkUserPermission',
                  params: Ext.encode(record)
   });

   return result;
}

这是可行的,但e1d1e会冻结浏览器(毫秒),我想知道:是否还有其他选项可以进行验证?事实上,控制台会显示警告,指出此行为将被弃用:-O
网格是一个透视表(使用SQL完成,而不是使用Ext pivot),因此有必要发送准确的复选框坐标,因为没有有效的id(即提交记录没有提供足够的列名称信息,并且id是自动生成的Ext id)。

6kkfgxo0

6kkfgxo01#

它冻结是因为javascript本质上是单线程的。您应该将权限标志传递给浏览器,以创建逻辑,从而向用户隐藏/禁用复选框,并在服务器端进行验证。
如果您真的想在每次单击复选框时执行ajax调用(绝对不应该),您需要:
1.如果用户单击了更改,则阻止它
1.发送ajax请求
1.实事求是地设置复选框

相关问题