首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

extjs4.1中遇到的有关问题

2012-09-16 
extjs4.1中遇到的问题。项目中遇到一个问题,动态添加checkgroup,总是添加不上去,总是会跳出一个问题。Panel.

extjs4.1中遇到的问题。
项目中遇到一个问题,动态添加checkgroup,总是添加不上去,总是会跳出一个问题。
Panel.form.findField('permission').add(items)无法获取属性“nextSibling”的值: 对象为 null 或未定义。但是在extjs4.0.2版本下是没有问题的。
  var Panel = new Ext.form.FormPanel({
  bodyStyle: 'position:relative;padding: 5px 5px;',

  defaults: {
  xtype: 'textfield',
  allowBlank: false,
  fieldWidth: 60
  },
  items: [{
  name: 'user_id',
  readOnly: user_id == undefined ? false : true,
  fieldLabel: '用户登录名'
  }, {
  name: 'user_name',
  fieldLabel: '用户姓名'
  }, {
  hidden: user_id == undefined ? false : true,
  name: 'password',
  fieldLabel: '密码',
  inputType: 'password'
  }, {
  hidden: user_id == undefined ? false : true,
  name: 'confirm',
  fieldLabel: '确认密码',
  inputType: 'password'
  }, {
  xtype: 'checkboxgroup',
  name: 'permission',

  frame: true,
  columns: 3,
  allowBlank: true,
  fieldLabel: '可用权限'
  }],
  buttons: {
  text: "确定",
  tabIndex: 1,
  iconCls: 'save',
  handler: onSaveUser
  }, {
  text: "取消",
  tabIndex: 2,
  iconCls: 'close',
  handler: function () {
  win.close();
  }
  }]
  });

  if (user_id) {

  Ext.Ajax.request({
  url: 'core/WebService.asmx/LoadUserByID',
  headers: {
  'Content-Type': 'application/json; charset=utf-8'
  },
  method: 'POST',
  jsonData: {
  user_id: user_id
  },
  success: function (response) {
  var data = Ext.JSON.decode(response.responseText).d;
  Panel.form.findField('user_id').setValue(user_id);
  Panel.form.findField('user_name').setValue(data.user_name);
  Panel.form.findField('password').setValue(data.password);
  Panel.form.findField('confirm').setValue(data.password);
   
  var items = initPermission(data.permission);

  userPanel.form.findField('permission').add(items);
  if (data.is_manager) {
  Panel.form.findField('permission').setVisible(false);
  return;
  }
  }
  });
  }
  else {

  var items = initPermission("");

  debugger;
  userPanel.form.findField('permission').add(items);
  }
  function initPermission(perms) {
  var items = new Array();
  if (perms == null) perms = "";
  var pms = perms.split(',');

  Ext.each(permission, function (m) {



  var checked = false;
  for (var i = 0; i < pms.length; i++) {
  if (Number(pms[i]) == m.permission_id) {
  checked = true;
  break;
  }
  }
  //有子部门的才能显示那些type=1的权限
  if (m.type == 0 || (m.type == 1 && has_child))
  items.push({ boxLabel: m.permission_desc, inputValue: m.permission_id, checked: checked });
  });

  return items;

  }

[解决办法]
findField( String id ) : Ext.form.field.Field

你没有定义ID吧。
[解决办法]
感觉你的代码有点乱, ar items = initPermission(data.permission); v这句可以成功取到items的值吗?另外你的function initPermission(perms)这个function写的是不是有问题,它没有返回任何值呀?

热点排行