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

Ext js EditorGridPanel 中用TriggerField实现参照 有关问题

2012-04-09 
Ext js EditorGridPanel 中用TriggerField实现参照 问题点击参照:弹出Window如果直接勾选数据行点提交 按

Ext js EditorGridPanel 中用TriggerField实现参照 问题
点击参照:弹出Window 如果直接勾选数据行 点提交 按钮 值能够传到EditorGridPanel 的cell 里面

点击参照:弹出Window 如果不直接勾选数据行(此时“焦点不在EditorGridPanel 的cell上了”) 点提交 按钮 值不能够传到EditorGridPanel 的cell 里面。


下面是TriggerField扩展成参照的 JS:


Ext.form.ShiftDefRefField = Ext.extend(Ext.form.TriggerField, {

  triggerClass: 'x-form-search-trigger',
  initComponent: function () {
  Ext.form.ComboBox.superclass.initComponent.call(this);
  this.ds = new Ext.data.Store({
  proxy: new Ext.data.HttpProxy({ url: '/HRM/geAllPersonfor', method: 'GET' }),
  reader: new Ext.data.JsonReader({ totalProperty: 'TotalCount', root: 'Data', id: 'F_PERSONNO' },
  [{ name: 'F_PERSONNO' }, { name: 'F_PSNNAME' }, { name: 'F_GRP_NAME' }, { name: 'F_STATIONAME'}])
  });
  this.ButtonOK = new Ext.Button({ id: 'RefButtonOK', text: '提交', tooltip: '单个人员选择', iconCls: 'add_btn' });

  this.TextField = new Ext.form.TextField({ id: 'queryParamref', name: 'queryParamref', emptyText: '岗位编码|岗位名称', enableKeyEvents: true, listeners: {
  specialkey: function (field, e) {
  if (e.getKey() == Ext.EventObject.ENTER) {
  queryDeptItem();
  }
  }
  },
  width: 130
  });
  this.sm = new Ext.grid.CheckboxSelectionModel();
  this.cm = new Ext.grid.ColumnModel([
  this.sm,
  { header: '人员编码', width: 100, dataIndex: 'F_PERSONNO', sortable: true },
  { header: '人员姓名', width: 100, dataIndex: 'F_PSNNAME', sortable: true },
  { header: '所属部门', width: 100, dataIndex: 'F_GRP_NAME', sortable: true },
  { header: '岗位', width: 100, dataIndex: 'F_STATIONAME', sortable: true}]);


  // 翻页排序时带上查询条件
  this.ds.on('beforeload', function () {
  this.baseParams = {
  queryParamref: Ext.getCmp('queryParamref').getValue()
  };
  });

  // 分页工具栏
  var bbar = new Ext.PagingToolbar({
  pageSize: 20,
  store: this.ds,
  displayInfo: true,
  displayMsg: '显示{0}条到{1}条,共{2}条',
  emptyMsg: "没有符合条件的记录"
  });

  this.gridMain = new Ext.grid.GridPanel({
  store: this.ds,
  cm: this.cm,
  sm: this.sm,
  stripeRows: true,
  height: 300,
  width: 500,
  loadMask: true,
  bbar: bbar,

  tbar: [
  this.ButtonOK, '->', this.TextField, {
  text: '查询',
  iconCls: 'find_btn',
  handler: function () {
  queryDeptItem();
  }
  }]
  });
  var store = this.ds;
  function queryDeptItem() {
  store.load({
  params: {
  start: 0,
  limit: bbar.pageSize,
  queryParamref: Ext.getCmp('queryParamref').getValue()
  }
  });
  }


  this.windowRef = new Ext.Window({
  layout: 'fit',
  modal: true,
  height: 300,
  width: 500,
  title: '人员参照',


  closeAction: 'hide',
  plain: true,
  items: this.gridMain
  });
  this.ButtonOK.on('click', this.ButtonOK_Click, this, { preventDefault: true });
  },

  ButtonOK_Click: function () {
  var selectedItems = this.gridMain.selModel.selections.keys;
  if (selectedItems.length == 0) {
  //Ext.MessageBox.;
  }
  else {
  var selectedRow = this.gridMain.getSelectionModel().getSelected();
  this.windowRef.hide();
  // this.setValue(selectedRow.get('Code'));
  var text = selectedRow.get('F_PERSONNO');

  var text1 = selectedRow.get('F_PSNNAME');
  //record.data.F_PersonName = text1;
  Ext.form.ShiftDefRefField.superclass.setValue.call(this, text + "&" + text1);
   

  }
  },
  onTriggerClick: function () {
  this.ds.load({ params: { start: 0, limit: 20 }, queryParamref: Ext.getCmp('queryParamref').getValue() });
  this.windowRef.show();
  }
});


哪位大哥有EditorGridPanel 实现参照的例子,formPanle的参照已经实现,上面贴的JS 也是实现formPanle的JS

[解决办法]
参考
[解决办法]
学习了,顺便蹭点分,

热点排行