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 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题