ComboBox使用growToLongestValue固定大小以获取内容列表

时间:2014-03-11 21:54:32

标签: extjs extjs4.2

我想保持字段小(固定最大宽度),但是当下拉列表显示时,列表内容会增长到最长值。有没有办法实现这个目标?

此示例中,滚动隐藏了最长值的最后一部分。

http://jsfiddle.net/2P4x4/

Ext.create('Ext.form.field.ComboBox', {
    renderTo: Ext.getBody(),
    style: 'margin-left:5px',
    fieldLabel: 'MyLabel',
    labelSeparator: ' ',
    growToLongestValue: true,
    matchFieldWidth: false,
    //grow: true,
    store: [
        'longest_valueeeeeeeeeeeeeeeeeeeeeeeabcdeX',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'auto_scroll_to_this_selected_element',
        'l_value_2'
    ]
});

由于

2 个答案:

答案 0 :(得分:0)

更改属性值如下:

    Ext.create('Ext.form.field.ComboBox', {
    renderTo: Ext.getBody(),
    style: 'margin-left:5px',
    fieldLabel: 'MyLabel',
    labelSeparator: ' ',
    growToLongestValue: false,
    //matchFieldWidth: false,
    //grow: true,
    store: [
        'longest_valueeeeeeeeeeeeeeeeeeeeeeeabcdeX',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'l_value_2',
        'auto_scroll_to_this_selected_element',
        'l_value_2'
    ]
});

答案 1 :(得分:0)

这是我最终找到解决这个问题的方法。我重写了exjs的css,在每个

  • 元素的左边添加了填充:

    http://jsfiddle.net/2P4x4/2/

    .x-boundlist-item {
        padding: 0 20px 0 6px;
    }
    

    即使没有滚动,右边总是多20px,但至少滚动条不会隐藏内容。