easyui datagrid checkbox 多选获取的数据不正确

问题描述:easyui datagrid checkbox进行多选的时候,获取的数据与选择的数据不一致,有的时候一条数据,有的时候多条数据。

根源:easyui datagrid 设置了 idField 列造成的。

解决:使用好 idField 列,或者去掉这个配置。

如下:

	$('#dg_taskgrid')
			.datagrid(
					{
						remoteSort : true,
						/*toolbar : [ {
							text : '批量修复',
							iconCls : 'icon-batch-repair',
							handler : function() {
								batchRepairAction();
							}
						} ],*/
						
						toolbar : '#tb_ops',
						singleSelect: false,
                        checkOnSelect : false,
                        selectOnCheck : false,
						title : '任务列表',
						fitColumns : true, // 设置列宽度自适应屏幕
						iconCls : 'icon-task-list',
						striped : true,
						url : basePath + 'web/op/queryTaskLog',
						method : 'get',
						width: $(window).width()*0.9,
						pageNumber : 1,
						pageSize : baseNum, // 设置默认分页大小
						pageList : pageList, // 设置分页大小
						idField : 'versionId',
						columns : [ [
                                {
                                    checkbox : true
                                },
										 
								{
									field : 'taskId',
									title : '任务ID',
									width : 40,
									align : 'center',
									sortable : true
								},
								{
									field : 'taskName',
									title : '任务名称',
									width : 80,
									align : 'center',
									sortable : false,
									formatter : function(val, row, rowIndex) {
										var taskName = val;
										var taskId = row.taskId;
										var length = 40;
										var showTaskName = suitableLengthText(
												taskName, length);
										var arr = [];
										arr
												.push('<a href="javascript:void(0);" title="');
										arr.push(taskName);
										arr.push('" class="'
												+ SHOW_FIRST_TOOLTIP_CLASS
												+ '" onclick="openTaskDeatil(');
										arr.push(taskId);
                                        arr.push(',2)">');
										arr.push(showTaskName);
										arr.push('</a>');
										return arr.join('');

									}
								}, 
								
								{
				                    field : 'versionNo',
				                    title : '数据版本',
				                    width : 30,
				                    align : 'center',
				                    sortable : true
				                },
				                {
									field : 'state',
									title : '版本状态',
									width : 30,
									align : 'center',
									sortable : true,
									formatter : versionStateFormat
								}, 
				                {
				                    field : 'startTime',
				                    title : '运行开始时间',
				                    width : 40,
				                    align : 'center',
				                    sortable : true,
				                    formatter : function(val, row, rowIndex) {
				                        if (null == val) {
				                            return '-';
				                        } else {
				                            return val;
				                        }
				                    }
				                },
				                {
				                    field : 'endTime',
				                    title : '运行结束时间',
				                    width : 40,
				                    align : 'center',
				                    sortable : true,
				                    formatter : function(val, row, rowIndex) {
				                        if (null == val) {
				                            return '-';
				                        } else {
				                            return val;
				                        }
				                    }
				                },
				                {
									field : 'elapsedLabel',
									title : '运行耗时',
									width : 20,
									align : 'center',
									sortable : false
								}, 
				                {
				                    field : 'message',
				                    title : '信息',
				                    width : 80,
				                    align : 'left',
				                    sortable : false,
				                    formatter : function(val, row, rowIndex) {
				                        var length = 30;
				                        var showVal = suitableLengthText(val,
				                            length);
				                        var arr = [];
				                        arr.push('<span class="'
				                            + SHOW_FIRST_TOOLTIP_CLASS
				                            + '" title="');
				                        arr.push(val);
				                        arr.push('">');
				                        arr.push(showVal);
				                        arr.push('</span>');
				                        return arr.join('');
				                    }
				                },{
									field : 'teamName',
									title : '团队名称',
									width : 30,
									align : 'center'
								},  {
									field : 'op',
									title : '操作',
									//width : 40,
									align : 'center',
									formatter : formatOp,
									sortable : false
								} ] ],
						pagination : true,
						queryParams : {
							filters : params
						},
						onLoadSuccess : function(data) {
							addToolTips(SHOW_FIRST_TOOLTIP_CLASS);
						}
					});

};

附加 checkbox的多选函数:

function batchKillTaskAction(){
    // FIXME 20150709
    var checkedItems = $('#dg_taskgrid').datagrid('getChecked');
    var arr = [];
    $.each(checkedItems, function(index, item){
        var str = item.taskId + ':' + item.versionNo;
        arr.push(str);
    });
    console.log('arr:'+arr.length+' --> '+arr.join(','))
}

猜你喜欢

转载自kanpiaoxue.iteye.com/blog/2225927