$('#dg').datagrid({
url:url,
method:'get',
striped: true,
checkOnSelect: true,
onLoadSuccess:headTD,
sortName: "order_code",
nowrap: true,
onSelect:onSelect,
onUnselect:onUnselect,
onDblClickCell:onClickCell,
autoRowHeight: false,
sortOrder: "asc",
frozenColumns: [frozeColumn],
columns: [columnsYears, columnsMonths, columnsDate]
});
//--------------------------------------------华丽的分割线--------------------------------
//合并单元格后复选框也进行了合并,点击合并行,该行全部选中
var indexElse = 1; // 不给不行,造成死循环
// 行选中
function onSelect(rowIndex, rowData) {
console.log('行' + rowIndex);
if(indexElse == 1){
// 获取 合并的行数
const rows = $('.datagrid-view1 .datagrid-body .datagrid-btable').find('tr').eq(rowIndex).find('td[field="order_code"]').attr('rowspan');
indexElse = rows*1;
// 循环rows,因为selectRow靠索引选中,所以索引 = 选中的当前行 + 遍历的合并数量
for(let i = 1; i < rows*1; i++){
$('#dg').datagrid('selectRow',rowIndex+i);
}
}else {
indexElse = 1; // 进来else 就说明不走这函数,把变量赋初值
console.log(indexElse)
}
}
// 取消行选中
function onUnselect(rowIndex, rowData) {
console.log('行' + rowIndex);
if(indexElse == 1){
const rows = $('.datagrid-view1 .datagrid-body .datagrid-btable').find('tr').eq(rowIndex).find('td[field="order_code"]').attr('rowspan');//2
indexElse = rows*1;
for(let i = 1; i < rows*1; i++){
$('#dg').datagrid('unselectRow',rowIndex+i);
}
}else {
indexElse = 1;
console.log(indexElse)
}
}
写的比较详细,方便以后自己看