// 绑定事件, index为当前编辑行
var editors = $('#staffLogDetailGrid').datagrid('getEditors', index);
console.info(editors[5]);
var sfgzEditor = editors[5];
sfgzEditor.target.bind('change',function () {
console.info("111");
console.info(sfgzEditor.target.val());
});
以上的edit类型是: 'validatebox',如下所示;
editor : {
type : 'validatebox',
options : {
required : true
}
}
绑定的是change事件;即单元格的内容改变时(无须失去焦点,只要内容改变就行了);
当然也可以绑定其他时间: 比如”blur”: 失去焦点的时候,实际中也有这种需求的, 比如一个单元格编辑完成后, 同时其他某些单元格的内容也会随之变化;
Bind是绑定的意识,即绑定事件的功能;Change, blur, bind这些方法都在edit(Object).target里面;
Type为'validatebox'也是可以的; 可是type为’combobox’好像change和blur事件都无法正常触发;
可是 console.info(editors[5]),输出的target 属性值为: Object[input.combobox-f],这是一个combobox对象;可以直接对其赋事件的; 所以代码如下:
// 绑定事件
var editors = $('#staffLogDetailGrid').datagrid('getEditors', lastIndex);
console.info(editors[3]);
var sfgzEditor = editors[3];
var sfgzCobobox = sfgzEditor.target;
console.info(sfgzCobobox);
sfgzCobobox.combobox({
onChange : function(n,o){
console.info("111");
}
});
这样就可以给type为combobox的edit绑定事件了;
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
onClickRow : function(rowIndex, rowData){
var editor = $('#datagrid').datagrid('getEditor', {index:rowIndex,field:"buyNum"});
editor.target.focus();
}
有时候在行编辑的时候,一个编辑框的值要根据其它编辑框的值进行变化,那么可以通过在开启编辑时,找到特定的Editor,为其添加事件
function editrow(index) {
if (rowedit == 0) {
$('#ZCEditList').datagrid('beginEdit', index);
rowedit = 1;
var editors = $('#ZCEditList').datagrid('getEditors', index);
var TonsEditor = editors[3];
var HorsepowerEditor = editors[4];
var StandardEditor = editors[10];
TonsEditor.target.bind('blur', function () {
HorsepowerEditor.target.val('');
var sum = TonsEditor.target.val() * 10;
StandardEditor.target.val(sum);
});
} }