日期:2014-05-16  浏览次数:20697 次

EditorGridPanel中的ComboBox触发不了afteredit - Web 开发 / Ajax
一个EditorGridPanel中包含一个可编辑的ComboBox表单。 
对grid添加listerners:afteredit事件 
却选择性触发afteredit事件。 

我的combobox表单既可以填入新值,也可以从下拉列表中选择。 

当我从下拉列表中选择值的时候,afteredit会触发; 
而填入新值的时候,却不会触发,不知道什么原因! 

相关代码如下: 
var grid = new Ext.grid.EditorGridPanel({ 
renderTo:'grid', 
ds: store, 
columns: [ 
{header: "列1", dataIndex: 'id'}, 
{header: "列2", dataIndex: 'name',editor:name_edit}, 
],
listeners:{ 
afteredit:function(e){ 
if(e.field == 'name'){ 
  alert("changed"); 



var name_edit = new Ext.form.ComboBox({ 
typeAhead:true, 
triggerAction:'all', 
minChars: 2, 
mode:'remote', 
store:store, 
resizable:true, 
handleHeight:5 
});

------解决方案--------------------
combo在editgrid下 从下拉列表中选择 是正常的
至於你說的combobox表单既可以填入新值
其實是用你輸入的內容來匹配combo的內容
所以你輸入內容後沒有選擇combo匹配的內容
combo對應的cell的value并沒有改變
so 不會觸發afteredit的吧


------解决方案--------------------
在combox自己写入的值,相当于BAIDU那个自动补全搜索来使用的,当然这个功能还需要在后台实现!你在combox中输入新值,而store中不存在这个值,那就相当于combox当前值根本没有改变!
在combox中输入新值,更多用于用简码获取想要的匹配值吧