2 leo honker Leo_Honker 于 2014.12.18 17:30 提问

LigerUi oncheckrow事件响应规则

function loadGrid(){
manager=$("#maingrid").ligerGrid({
columns: [
{ display: '主键信息', name: 'ID',align: 'center', width: 130 ,hide : true},
{ display: '产品分类', name: 'PRODUCTCLASS', align: 'center', width: 100,hide : true },
{ display: '是否关联', name: 'SYS_FLAG', align: 'center', width: 100,hide : true },
{ display: '系统分类', name: 'ITEMVAL', width: 100, align: 'center' },
{ display: '来源系统', name: 'ISRESOURCE', width: 100, align: 'center'
,editor: { type: 'select', data: isSysdata, valueField: 'ISRESOURCE' }
,render:function(item ){
if(parseInt(item.ISRESOURCE) == 1)
return '是';
return '否';
} }//,
],
parms: {orgID:orgID},
title:"产品关联列表",
url:'<%=_contexPath%>/productSort.do?task=sysInfo&step=sysInfo',
dataAction:'local',//local 本地分页,server 服务器端分页
pageSize: 10,
width: '20%;',
height: '80%',
checkbox:true,
enabledEdit: true,clickToEdit: true, isScroll: false,
onCheckRow : f_onCheckRow ,
onCheckAllRow :f_onCheckAllRow,
isChecked:f_isChecked,
onAfterEdit: f_onAfterEdit
});
}
我在onCheckRow函数如下:
function f_onCheckRow(checked,data,rowid,rowdata) {
//alert(data.ITEMVAL);

        if(checked){
            //if(e_flag==1){
                //e_flag=0;
                $.ajax({
                    type:'POST',
                    url:'<%=_contexPath%>/productSort.do?task=addRelas&step=addRelas&productType=1&item_val='+encodeURI(encodeURI(data.ITEMVAL)),
                    dataType:'json',
                    async:true,
                    contentType: "application/x-www-form-urlencoded; charset=gb2312",
                    data:{
                        "prd_class":data.PRODUCTCLASS,
                        "resource_sys":data.ISRESOURCE
                    },                       
                    success:function(data){
                        e_flag=1;
                        if(data.msg != 'success'){
                            $.ligerDialog.error('提交数据集失败!');    
                            return true;
                        } 
                        manager.loadData(true); 
                        return true;
                    }
                });
            //}
            return true;

        }else{
            //if(e_flag==1){
            //  e_flag=0;
                $.ajax({
                    type:'POST',
                    url:'<%=_contexPath%>/productSort.do?task=delRelas&step=delRelas&productType=1',
                    dataType:'json',
                    async:true,
                    data:{
                        "prd_id":data.ID
                    },                       
                    success:function(data){
                        e_flag=1;
                        if(data.msg != 'success'){
                            $.ligerDialog.error('提交数据集失败!');    
                            return true;
                        }
                        manager.loadData(true); 
                        return true;
                    }
                });
            //}
            return true;
        };
    }
    为什么每次我选中一行的前面复选框之后,AJAX都莫名其妙执行好多次,而且是从 f_onCheckRow函数入口开始执行。onCheckRow这个事件执行机制是什么?

2个回答

showbo
showbo   Ds   Rxr 2014.12.18 17:58

你的ajax中又调用manager.loadData(true); 加载服务器数据干嘛???

这个框架还是不太成熟,最好升级到最新版本去,可以解决不少bug。。还是easyui好用点,也多人用

showbo
showbo 不知道你什么版本的ligerUI,我这里V1.2.5加了你这句会导致checkbox无法勾选,因为重新加载了manager.loadData(true); ,其实不用重新加载吧,去掉这句
大约 3 年之前 回复
Leo_Honker
Leo_Honker manager.loadData(true); 这个函数是AJAX执行成功回调函数,重新加载数据啊,
大约 3 年之前 回复
Leo_Honker
Leo_Honker   2014.12.19 14:22

manager.loadData(true); 这个函数是AJAX执行成功回调函数,重新加载数据啊,

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!