extjs 页面下拉列表的中加入一个之前写好的grid的方法

之前的代码是这样的,我想把这个ds放到一个下拉列表中变成这样的形式:请问应当如何实现,该大致怎么写呢,谢谢啦... 之前的代码是这样的,我想把这个ds放到一个下拉列表中 变成这样的形式:
请问应当如何实现,该大致怎么写呢,谢谢啦
展开
 我来答
cqh46
推荐于2016-11-28 · TA获得超过3292个赞
知道大有可为答主
回答量:2149
采纳率:100%
帮助的人:1273万
展开全部
Ext.define('GridCombo', {
    extend : 'Ext.form.field.Picker',
    alias : 'GridCombo',
    width : 350,
    emptyText : '报告人',
    editable : false,
    fieldLabel : '报告人',
    labelWidth : 60,
    labelAlign : 'right',
    margin : '0 0 0 10',
    codeRender : function(val) {
        return val;
    },
    gridStore : Ext.create('Ext.data.Store', {
        fields : ['name', 'company'],
        autoLoad : true,
        proxy : {
            type : 'ajax',
            url : url,
            reader : 'json'
        }
    }),
    setDisCode : function(code) {
        this.disCode = code;
    },
    setDefualtValue : function() {
        this.setValue(this.emptyText);
        this.setDisCode("*");
    },
    getDisCode : function() {
        return this.disCode;
    },
    loadData : function(data) {
        this.gridStore.clearData()
        this.gridStore.loadData(data);
    },
    getStore : function() {
        return this.gridStore;
    },
    setStore : function(store) {
        this.gridStore = store;
    },
    createPicker : function() {
        var me = this;
        var searchInput = Ext.widget('textfield', {
        xtype : '',
        fieldLabel : '姓名',
        width : 150,
        labelWidth : 30
    });
    var picker = Ext.create('Ext.grid.Panel', {
        floating : true,
        width : 350,
        height : 300,
        store : me.gridStore,
        tbar : [searchInput, {
        xtype : 'button',
        text : '查询',
        handler : filterGridStore
    }],
    columns : [{
        dataIndex : 'name',
        text : '姓名',
        width : 100,
        align : 'right',
        renderer : me.codeRender
        }, {
            dataIndex : 'company',
            text : '单位',
            flex : 1
        }]
    });
    function filterGridStore() {
        var searcher = searchInput.getValue();
        me.gridStore.filterBy(function(rec) {
            var name = rec.get('name');
            return name.indexOf(searcher) > -1;
        });
    }
    picker.on('itemclick', function(view, rec, item, index, e,eOpts) {
            var obj = rec.data;
            me.setValue(obj.name);
            me.setDisCode(obj.name);
            me.collapse();
        });
     return picker;
     }
});
var extendGridCombo = Ext.create(
    GridCombo', {
    layout : 'border'
});


想做的是下拉树吗? 

追问
就是一下拉,不像是平常的下来列表只有名字,要像表格页面一样,分为名字部门电话的表格一样。我那个代码ds都有了,gridpanel也有了,就是不知道怎么把他们放如combobox里面,直接放入就什么都不显示。
追答
哦哦 ,对对下拉列表,不是下拉树,我说错了
我上面写的就是下拉列表,而且带搜索的。
具体的字段名和其他信息修改一下就可以。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式