源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

extjs中grid中嵌入动态combobox的应用

  • 时间:2022-02-06 23:11 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:extjs中grid中嵌入动态combobox的应用
拿combobox的数据
[u]复制代码[/u] 代码如下:
comboDS = new Ext.data.JsonStore({ url : 'test.do', fields : [{ name : 'id' }, { name : 'display' }] });
combobox定义 combobox 中的id必须要有,后面要跟据id取combobox值。
[u]复制代码[/u] 代码如下:
var comboBox = new Ext.form.ComboBox({ id : "cb", //必须有 typeAhead : true, readOnly : true, allowBlank : false, autoScroll : true, selectOnFocus : true, emptyText : '请选择...', store : comboDS, forceSelection : true, triggerAction : 'all', displayField : 'display', valueField : 'id' });
grid 的定义:
[u]复制代码[/u] 代码如下:
ds = new Ext.data.Store({ baseparams : { start : 0, limit : RowCount }, proxy : new Ext.data.HttpProxy({ url :'test2.do' }), reader : new Ext.data.JsonReader({ root : 'data', totalProperty : 'totalCount' }, [{ name : "bh" }, { name : "test" }]); }); var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), { header : "编号", dataIndex : "bh" }, { header : "测试", dataIndex : "test", renderer : renderer, editor : comboBox }]); grid = new Ext.grid.EditorGridPanel({ title : '测试', ds : ds, cm : cm, clicksToEdit : 1, viewConfig : { forceFit : true }, bbar : new Ext.PagingToolbar({ pageSize : RowCount, store : ds, displayInfo : true, displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg : "没有记录" }) });
cm 的renderer函数 此方法为解决combobox修改后显示为id
[u]复制代码[/u] 代码如下:
function renderer(value, p, r) { var index = comboDS.find(Ext.getCmp('cb').valueField, value); var record = comboDS.getAt(index); var displayText = ""; if (record == null) { displayText = value; } else { displayText = record.data.display;// 获取record中的数据集中的display字段的值 }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部