我在使用onClickRow: function(rowIndex,rowData){
if(editRow!=-1){
reportgrid.datagrid('validateRow');
reportgrid.datagrid('endEdit',editRow);
}
reportgrid.datagrid('beginEdit',rowIndex);
editRow=rowIndex;
}单击行进入编辑状态,然后我使用onBeforeEdit:function(rowIndex, rowData){
var ed = $('#reportgrid').datagrid('getEditor', {index: rowIndex,field:'fcno'});
if(ed){
$(ed.target).combotree({
url: '/protAction.ered?reqCode=initProtcombotree&projectid='+rowData.projectid+'&loginuserid='+loginuserid,
editable: false,
loadFilter: function(rows){
return convert(rows);
}
});
if(rowData.fcno){
$(ed.target).combotree('setValue',rowData.fcno);
}
}
}
发现变量ed老是为空,使用getEditors数组也是为空,但是把 var ed = $('#reportgrid').datagrid('getEditor', {index: rowIndex,field:'fcno'});放在onClickRow事件内的 reportgrid.datagrid('beginEdit',rowIndex);之后,变量ed就有值了,那么就是说开始编辑的时候column才会初始化每一行的editor对象。