Осталось создать (точнее, переделать уже созданный ранее) Web-сценарий, который, собственно, будет выполнять поиск.
Откройте файл Web-сценария main.js в Блокноте и добавьте в его начало выражение:
var cSearchHeight = 0;
Оно объявляет служебную переменную, в которой будет сохранена изначальная высота контейнера csearch. Это значение мы будем использовать для позиционирования данного контейнера. Его высота в процессе работы будет постоянно меняться, поэтому для его позиционирования нам понадобится изначальное значение высоты.
Далее найдите тело функции, передаваемой методу onReady объекта Ext. В самом его начале поместите два выражения:
Ext.get("search_result").setDisplayed(false);
cSearchHeight = Ext.get("csearch").getHeight();
Первое выражение сразу скроет список search_result, а второе присвоит изначальную высоту контейнера csearch объявленной ранее служебной переменной.
Функцию adjustContainers, задающую размеры контейнеров, мы объявили уже давно и с тех пор ни разу к ней не возвращались. Внесем в объявление этой функции некоторые правки.
|
|
Добавьте в самый конец adjustContainers следующие выражения:
var elCSearch = Ext.get("csearch");
elCSearch.setLocation(clientWidth — elCSearch.getWidth(),
Ext.get("cmain").getY() — cSearchHeight);
Они позиционируют контейнер csearch так, чтобы он в любом случае находился над верхним левым углом контейнера cmain. Кстати, здесь используется значение изначальной высоты контейнера csearch, которое мы сохранили ранее.
Найдите объявление функции searchData. Переделайте его так, как показано в листинге 16.27.