разработка сайтов, разработка программного обеспечения (495) 150-80-59

Главная страница / Программное обеспечение / Mayral framework / Документация / Классы и компоненты / OBasicClass / OBasicComponent / OBasicEventComponent / OBasicStyleComponent / OBasicValueComponent

OBasicRepeater


Текущая версия: 1.0.3

Последнее обновление: 27.11.2009

 

Описание: базовый класс для вывода повторяющихся элементов.

 

Методы:

 

public function __construct($Name, $Parent)

Описание: конструктор класса.

Параметры:

$Name - название компонента

$Parent - компонент-родитель

 

protected function GenerateItems()

Описание: генерация элементов

Возвращаемое значение: сгенерированные по шаблону элементы

 

protected function GetItemTemplate($_index)

Описание: получение шаблона элемента

Параметры:

$_index – в текущей версии не используется

Возвращаемое значение: шаблон одного элемента

 

protected function GenerateItem($_index)

Описание: генерация одного элемента по шаблону

Параметры:

$_index – индекс элемента

Возвращаемое значение: сгенерированный по шаблону элемент

 

protected function PrepareItemValue($_index, $_name, $_value)

Описание: подготовка к выводу параметра элемента

Параметры:

$_index – индекс элемента

$_name – название параметра

$_value – значение параметра

Возвращаемое значение: значение параметра элемента

 

protected function BeforeGenerate()

Описание: выполнение различных действий перед генерацией компонента

 

protected function LoadTemplate($_type)

Описание: загрузка шаблона компонента

Параметры:

$_type – в текущей версии не используется

Возвращаемое значение: загруженный шаблон

 

protected function CustomEvent($_event_name)

Описание: обработка собственных событий компонента

Параметры:

$_event_name – название события

Возвращаемое значение: имя функции для исполнения

 

Свойства:

 

public $ItemTemplate;

Описание: шаблон для одного элемента

 

public $EmptyTemplate;

Описание: шаблон пустого элемента для случая, когда в списке нет ни одного элемента

 

public $Items;

Описание: объект класса OBasicList со списком элементов

 

public $javascript_OnItemClick = "";

Описание: javascript-функция для обработки события OnItemClick

 

public $OnItemClick = "";

Описание: php-функция для обработки события OnItemClick

 

События:

 

OnItemClick

Описание: событие, возникающее при клике на элемент.

 

Пример создания в PHP

$this->DataList = new OBasicRepeater("DataList", $this);
//Установка положения компонента на форме
$this->DataList->Style->Top = 40;
$this->DataList->Style->Left = 10;
$this->DataList->Style->Right = 10;
$this->DataList->Style->Bottom = 10;
$this->DataList->OnItemClick = "Parent->DataList_OnClick";
//Назначение обработчика для события OnItemClick

* This source code was highlighted with Source Code Highlighter.

 

Пример создания в XML

<component class="OBasicRepeater" name="DataList">
 <Style> //Установка положения компонента на форме
    <Top>40</Top>
    <Left>10</Left>
    <Right>10</Right>
    <Bottom>10</Bottom>
 </Style>
 <OnItemClick>Parent->DataList_OnClick</OnItemClick> //Назначение обработчика для события OnItemClick
</component>

* This source code was highlighted with Source Code Highlighter.

 

Установка шаблона

$this->DataList->SetTemplateFileName("project/some_template.htm");

* This source code was highlighted with Source Code Highlighter.

 

Пример функции заполнения компонента элементами

 

Заполнение из базы данных:


protected function FillDataList()
{
    $this->DataList->Items->Clear(); //Удаление всех элементов
    $ds = new ODBDataSet("", $this, GetConnection("MainDBConnection")); //Создание объекта для выполнения запроса
    $ds->Open("SELECT * FROM some_table"); //Выполнение запроса
    for ($i = 0; $i < $ds->RowCount; $i++) //Цикл по полученным строкам
    {
        $ds->SetRow($i); //Установка текущей строки для выбора элементов
        $Item = new ODBObject("", $this, "MainDBConnection"); //Создание объекта для хранения параметров
        $Item->ReadFromDataSet($ds); //Чтение параметров из результатов запроса
        $this->DataList->Items->Add($Item); //Добавление элемента в компонент
    }
    AddToChangedComponents($this->DataList); //Добавление компонента в список на обновление в клиентской части
}

* This source code was highlighted with Source Code Highlighter.

 

Заполнение вручную:


protected function FillDataList()
{
    $this->DataList->Items->Clear(); //Удаление всех элементов
    for ($i = 0; $i < 10; $i++)
    {
        $Item = new ODBObject("", $this, "MainDBConnection"); //Создание объекта для хранения параметров
        $Item->Property["COUNT"] = $i; //Добавление параметров в элемент
        $Item->Property["DOUBLE_COUNT"] = $i*2;
        $this->DataList->Items->Add($Item); //Добавление элемента в компонент
    }
    AddToChangedComponents($this->DataList); //Добавление компонента в список на обновление в клиентской части
}

* This source code was highlighted with Source Code Highlighter.

 

Пример шаблона

<div name="{Name}" id="{Name}" style="position: absolute; top: 0px; left: 0px; bottom: 0px; right: 0px; border: 1px solid #9e948a;">
    <div style="position: absolute; top: 0px; left: 0px; bottom: 0px; right: 0px; background-color: #e8e2d9; border: 1px solid #ffffff; padding: 3px; {Style}">
        {Items}
        <!--item_start-->
        <div class="OuterBorder" style="margin: 3px; position: relative; float: left; width: 150px; height: 90px; background-color: #eed; text-align: center;">
            <div class="InnerBorder" style="padding: 5px; overflow: hidden; text-align: center;" >
                <div style="cursor: pointer;height: 30px; border: 0px solid #f00;" onclick="ServerArgEvent('{Name}', 'onitemclick', '{INDEX}');">{NAME}</div>
            </div>
        </div>
        <!--item_end-->
    </div>
</div>

* This source code was highlighted with Source Code Highlighter.

 

 

Возможные параметры шаблона:

<!--item_start--> … <!--item_end--> - между этими элементами располагается шаблон для одного элемента.

<!--empty_start--> … <!--empty_end--> - между этими элементами располагается шаблон для пустого элемента


Есть вопросы?
Задайте вопрос технической поддержке с помощью формы обратной связи.

А так же:



Готовые решения Наши услуги Компания


При использовании или копировании материалов ссылка обязательна
+7 495 150-80-59
Россия, Москва, Щербаковская улица, д.53
E-mail:

Как к нам добраться
Обратная связь