1. 程式人生 > >(原創)EasyUI中datagrid的行編輯模式中,找到特定的Editor,併為其新增事件

(原創)EasyUI中datagrid的行編輯模式中,找到特定的Editor,併為其新增事件

有時候在行編輯的時候,一個編輯框的值要根據其它編輯框的值進行變化,那麼可以通過在開啟編輯時,找到特定的Editor,為其新增事件

// 繫結事件, 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裡面; console.info(editors[5]);

就可以在網頁測試工具中檢視到;

裡面還有很多事件可以用

Type'validatebox'的本人已經親測過,是可以的; 可是type’combobox’好像changeblur事件都無法正常觸發;可是我看到 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");

}

});

這樣就可以給typecomboboxedit繫結事件了;

作者: 張振斌    時間: 2013-3-8  QQ:739934487