在用户更改其状态之前,需要验证网格中的检查列:
{
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)。
1条答案
按热度按时间6kkfgxo01#
它冻结是因为javascript本质上是单线程的。您应该将权限标志传递给浏览器,以创建逻辑,从而向用户隐藏/禁用复选框,并在服务器端进行验证。
如果您真的想在每次单击复选框时执行ajax调用(绝对不应该),您需要:
1.如果用户单击了更改,则阻止它
1.发送ajax请求
1.实事求是地设置复选框