如何使用字符串引用extJS组合框?

时间:2015-06-02 22:07:48

标签: javascript django extjs

有没有办法通过字符串引用回到组合框的实例?
我有一个解决方法,但不是很满意,特别是因为我认为将来需要创建更多的ComboBox。 我尝试过使用'reference','id','itemId'。

我问的原因是b / c我倾销关于我的字段的元信息,并且元信息作为字符串出现。
这很有效,直到我需要一个javascript实例为我的'编辑器'。

当信息引用它时,我无法引用javascript实例 我在下面发布我的代码(只是相关部分),并在我的问题/问题/解决方法附近发表评论。

var my_combo=Ext.create('Ext.form.field.ComboBox', {
    listClass: 'x-combo-list-small',
    store: ['string', 'int', 'number', 'boolean', 'date'],
    queryMode: 'local',
    displayField: 'data_type',
    valueField: 'data_type'
});

var center_grid = Ext.create('Ext.grid.Panel', {
    store: ourrecordstore,
    region: 'center',
    selModel: Ext.create('Ext.selection.CheckboxModel'),
    selType: 'rowmodel',
    /*
    columns: {{grid_panel_columns|safe}},// <---this does not work b/c we need to use javascript variable, not something quoted. 
    if we could use a string to identify the data_type_combo object, that would be ideal.
    for now i am iterating across the dictionary and if the editor i want is data_type_combo, then i have code below to use the data_type_combo instance
    previously what you see on the next line was used (django template), but it failed when i needed to add drop downs via combobox.
    columns:[{{grid_panel_columns|safe}}]
    */
    columns: [{% for column in grid_panel_columns %}
                {% if column.editor == "data_type_combo" %}
                     {'filter': {'type': 'string'},'text': 'data_type', 'dataIndex': 'data_type','editor':my_combo},
                {% else %}
                    {{column|safe}},
                {% endif %}
            {% endfor %}],
    })

这就是grid_panel_columns数组的样子

'grid_panel_columns': [
    {'filter': {'type': 'string'}, 'text': 'name', 'dataIndex': 'name', 'editor': 'textfield'}, 
    {'filter': {'type': 'string'}, 'text': 'data_type', 'dataIndex': 'data_type', 'editor': 'data_type_combo'}, 
    {'filter': {'type': 'string'}, 'text': 'active', 'dataIndex': 'active', 'editor': 'textfield'}, 
    {'filter': {'type': 'string'}, 'text': 'id', 'dataIndex': 'id'}
], 

1 个答案:

答案 0 :(得分:1)

我不知道我是否理解,但你想为你的编辑器设置一个特定的组合框,如xtype: 'combo'

您可以根据可用作editor: 'data_type_combo的组合框定义新的xtype。

以下是如何实现这一目标的示例:https://fiddle.sencha.com/#fiddle/nup