DataView скрывает порождение ComboBox - PullRequest
0 голосов
/ 16 февраля 2010

Я опубликовал это на форумах Ext пару дней назад, но ответа не последовало, так что, может, повезет больше.

В настоящее время у меня есть поле со списком, загружающее данные из php через ajax. Все работает отлично, за исключением того, что когда мои результаты возвращаются, DataView покрывает ComboBox (рис. 2). Я включил соответствующий код ниже, поэтому любая помощь будет принята с благодарностью.

Возможно, я ошибаюсь, но я думаю, что я устранил проблемы CSS, поскольку элемент DataView отображается с абсолютной позицией.

альтернативный текст http://img.skitch.com/20100216-8t4pmbc3e6mydqqrac9qm9ucj.jpg

рис 1.

альтернативный текст http://img.skitch.com/20100216-n5t44g8rua7fawkwjrj49fk7t4.jpg

рис 2.

var dataStore = new Ext.data.JsonStore({
    url: '/ajaxGateway.php',
    root: 'data',
    baseParams: {
        useClass: 'App_GeoIP_GeoIP',
        useMethod: 'getLocationsStartingWith'
    },
    fields: [
             {name:'text', mapping:'TITLE'},
             {name:'stateName', mapping:'STATE_NAME'},
             {name:'regionHierarchy', mapping:'REGION_HIERARCHY'},
             {name:'id', mapping:'ID', type:'int'},
             {name:'lat', mapping:'LATITUDE', type:'float'},
             {name:'lng', mapping:'LONGITUDE', type:'float'}
            ]
});

_

var resultTpl = new Ext.XTemplate(
    '<tpl for="."><div class="search-item" style="text-align:left">',
    '<span>{text}, <small>{stateName}</small></span>',
    '</div></tpl>'
);

_

var locationBasedRulesTree = new Ext.tree.TreePanel({
    title: 'Location Based Regions',
    height: 329,
    width: 480,
    autoScroll: true,
    useArrows: true,
    animate: false,
    rootVisible: false,
    frame: true,
    enableDrag: true,
    root: new Ext.tree.AsyncTreeNode({
        id:'custom_root'
    }),
    tbar: new Ext.Toolbar(),
    listeners:
    {
        listenersHandlers...: function(){}
    }
});

_

locationBasedRulesTree.getTopToolbar().addField(
    new Ext.form.ComboBox({
        store: dataStore,
        displayField: 'text',
        typeAhead: false,
        loadingText: 'Finding...',
        blankText: "Search for a Place...",
        width: (Ext.isIE6) ? 155:200,
        hideTrigger: true,
        forceSelection: true,
        selectOnFocus:true,
        tpl: resultTpl,
        itemSelector: 'div.search-item',
        enableKeyEvents: true,
        onSelect: function(record)
        {
            selectHandler...();
        },
        listeners:
        {
            keypress : function(comboBox, event) {
                keypressHandler...();
            }
        }
    })
);

Ответы [ 2 ]

0 голосов
/ 16 февраля 2010

Похоже, что listAlign или hideParent установлены неправильно ... Я не вижу этого в вашем определении, но перепроверил бы ... попробуйте установить их для параметров конфигурации вручную. У меня также были проблемы с IE, когда не задано свойство конфигурации listWidth.

0 голосов
/ 16 февраля 2010

Трудно сказать. Первое, что я хотел бы сделать, это вырвать поле со списком из вашего макета и попытаться отобразить его на простой странице и посмотреть, если у вас все еще есть эта проблема (должно быть легко сделать). Это сразу подтвердит или исключит, что это связано с вашим конкретным макетом. Вы также не упомянули, происходит ли это только в определенных комбинациях браузера / ОС - если это так, это может быть ошибка Ext. Если это происходит в любом браузере, то это, вероятно, проблема с вашим макетом. Попробуйте сначала сузить его, тогда, возможно, будет более очевидно, куда идти дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...