lvyiao_a 2010-05-27 21:19
浏览 334
已采纳

extjs单元格不能触发afterEdit

使用extjs的可编辑表格时,为什么下拉框可以触发afterEdit,下拉框是最右边一个,而普通的TextField却不能触发afterEdit,

 

 

 

请问为什么,,,

var cm_user = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer({
     header : '行号',
     width : 60
    }), {
   header : '用户名',
   id : 'username',
   dataIndex : 'username',
   sortable : false,
   menuDisabled : true,
   width : 90,
   editor : new Ext.form.TextField({
      allowBlank : false,
      maxLength : 6
     })
  }, {
   header : '用户密码',
   id : 'userpass',
   dataIndex : 'userpass',
   sortable : false,
   menuDisabled : true,
   editor : new Ext.form.TextField({
      allowBlank : false,
      maxLength : 6
     })
  }, {
   header : '用户权限',
   id : 'permission',
   dataIndex : 'permission',
   sortable : false,
   menuDisabled : true,
   editor : new Ext.form.ComboBox({
      mode : 'local',
      editable : false,
      store : new Ext.data.SimpleStore({
         data : [['普通员工', '普通员工'],
           ['系统管理员', '系统管理员']],
         fields : ['text', 'value']
        }),
      displayField : 'text',
      valueField : 'value',
      triggerAction : 'all'
     })
  }]);

也是就修改用户权限就触发了,而且修改用户名和密码没有触发,修改后又跳回以前的值,

 

var userGrid = new Ext.grid.EditorGridPanel({ // 可以编辑的表格
 id : 'userGrid',
 name : 'userGrid',
 title : '系统用户列表',
 enableColumnMove : false,
 trackMouseOver : false,
 iconCls : 'icon-user',
 cm : cm_user,
 store : ds_user,
 clicksToEdit : 1, // 设置点击几次才可编辑
 autoExpandColumn : 1,
 region : 'center',
 viewConfig : {
  forceFit : true
 },
 loadMask : {
  msg : '正在加载数据...'
 },
 sm : new Ext.grid.RowSelectionModel({
    singleSelect : true
   }),
 tbar : ['-', {
    text : '增加用户',
    cls : 'icon-add',
    handler : function() {
     saveUserWindows.setTitle('新增系统用户');
     saveUserWindows.show();
    }
   }, '-', {
    text : '删除用户信息',
    iconCls : 'icon-delete',
    handler : deleteUser
   }, '-', '->', '-', {
    text : '刷新',
    iconCls : 'icon-refresh',
    handler : refreshUser
   }, '-'],
 bbar : new Ext.PagingToolbar({
    pageSize : 20,
    store : ds_user,
    displayInfo : true,
    displayMsg : '第 {0} - {1} 条 共 {2} 条',
    emptyMsg : '暂无系统用户信息'
   }),
 listeners : {
  'afterEdit' : function(e) {
   //var record = obj.record;// 获取被修改的行
   var field = e.field;// 获取被修改的列
   alert(field);
   Ext.Ajax.request({
      method : 'post',
      url : 'updateUser.action',
      params : {
       field : field
      },
      success : function(o) {
       Ext.MessageBox.alert('消息', '修改成功!');
       ds_user.reload();
      },
      failure : function() {
       Ext.Msg.show({
          title : '错误提示',
          msg : '修改数据发生错误,操作将被回滚!',
          buttons : Ext.Msg.OK,
          icon : Ext.Msg.ERROR
         });
       ds_user.reload();
      }
     });
  }
 }

 

  • 写回答

1条回答

  • iteye_1059 2010-05-28 18:31
    关注

    TextField无afterEdit事件,用blur或change

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程