结束编辑事件
当单元格编辑时按下回车,Tab , ESC 键后导致编辑结束时,本事件被触发
当一个单元格被编辑,并按下回车后,将有如下一系列事件按先后顺序被执行:
从上述事件触发的顺序可以看出,如果需要的话,可以在endEdit事件里把编辑焦点转移到需要的单元格中。请参看后面的示例
// sheet 工作表对象
// row 被编辑单元格的行号
// col 被编辑单元格的列号
// dbRow 当该单元格绑定到一个多行数据源时,本参数表明是其中第几行正在被编辑
//
注意 dbRow 从0开始,dbRow=0 表示数据源中的第一行正在被编辑
// 所以 dbRow 取值范围是从0 到 行数减一
// enterKeyPressed 是不是因为按回车导致编辑焦点失去
// isShiftDown shift 有没有按下
// isControlDown ctrl 有没有按下
function endEdit(sheet,row,col,dbRow,enterKeyPressed,isShiftDown,isControlDown)
{
}
示例:
其中J4绑定到一个多行数据源的一个数字型字段上,如果输入的数据大于0,那么改跳到相同字段的下一个数据行中继续编辑( 缺省是跳到同一个数据源的同一个数据行上的下一个字段上)。
function endEdit( sheet,row,col,dbRow) { //打印一些调试信息 println( sheet.cells(row,col).getName()+': ' + row+' , '+col+' , dbrow='+dbRow); //如果是J4单元格(它绑定到一个多行数据源上)结束了编辑, if ( sheet.cells(row,col).getName()=='J4') { var je= sheet.cells(row,col).getValue (dbRow); println(je); //如果输入的数据>0 那么跳到本字段的下一个数据行 if ( je>0 && dbRow<24) { book.getDataSource('fpjxmx').setCurrentBindRow(dbRow+1); sheet.getWorkSheetView().beginEdit( row,col); } } }