var SelectedRows=new Array(); //所有选中的行对象
var ShiftStartRow=""; //Shift多选时存储开始行对象
var CurrentRow=""; //当前行
// 保存记录行的颜色
var color=null;
//选中行变色
function changeColor(E){
for(var i=0;i<E.parentElement.rows.length;i++){
E.parentElement.rows(i).style.backgroundColor="#dbf0e4";
}
for(i=0;i<SelectedRows.length;i++){
SelectedRows[i].style.backgroundColor="#aaf8bb";
}
if(CurrentRow!=""){
CurrentRow.style.backgroundColor="#aaf8bb";
}
}
//选行主函数
function onfocusit(){
var iRow=window.event.srcElement;
do{
iRow=iRow.parentElement;
}while(iRow.tagName!='TR')
//Ctrl多选
if(event.ctrlKey){
var j=-1;
for(i=0;i<SelectedRows.length;i++){
if(iRow==SelectedRows[i]){
j=i;
break;
}
}
if(j!=-1){
for(i=j;i<SelectedRows.length-1;i++){
SelectedRows[i]=SelectedRows[i+1];
}
SelectedRows.length=SelectedRows.length-1;
CurrentRow="";
}else{
SelectedRows[SelectedRows.length]=iRow;
CurrentRow=iRow;
}
ShiftStartRow=iRow;
}
//Shift多选
else if(event.shiftKey){
if(ShiftStartRow!=""){
var StartIndex=ShiftStartRow.rowIndex;
var EndIndex=iRow.rowIndex;
var oTable=iRow.parentElement;
SelectedRows.length=0;
if(StartIndex < EndIndex){
for(var i=StartIndex;i<EndIndex+1;i++){
SelectedRows.push(oTable.rows[i]);
}
}
if(StartIndex >= EndIndex){
for(var i=EndIndex;i<StartIndex+1;i++){
SelectedRows.push(oTable.rows[i]);
}
}
CurrentRow=iRow;
}
}else{
SelectedRows.length=1;
SelectedRows[0]=iRow;
ShiftStartRow=iRow;
CurrentRow=iRow;
}
changeColor(iRow);
}