Prado\Web\UI\WebControls\TListControl::performDataBinding PHP Method

performDataBinding() protected method

This method is invoked by dataBind(). You may override this function to provide your own way of data population.
protected performDataBinding ( $data )
    protected function performDataBinding($data)
    {
        $items = $this->getItems();
        if (!$this->getAppendDataBoundItems()) {
            $items->clear();
        }
        $textField = $this->getDataTextField();
        if ($textField === '') {
            $textField = 0;
        }
        $valueField = $this->getDataValueField();
        if ($valueField === '') {
            $valueField = 1;
        }
        $textFormat = $this->getDataTextFormatString();
        $groupField = $this->getDataGroupField();
        foreach ($data as $key => $object) {
            $item = $items->createListItem();
            if (is_array($object) || is_object($object)) {
                $text = TDataFieldAccessor::getDataFieldValue($object, $textField);
                $value = TDataFieldAccessor::getDataFieldValue($object, $valueField);
                $item->setValue($value);
                if ($groupField !== '') {
                    $item->setAttribute('Group', TDataFieldAccessor::getDataFieldValue($object, $groupField));
                }
            } else {
                $text = $object;
                $item->setValue("{$key}");
            }
            $item->setText($this->formatDataValue($textFormat, $text));
        }
        // SelectedValue or SelectedIndex may be set before databinding
        // so we make them be effective now
        if ($this->_cachedSelectedValue !== null) {
            $this->setSelectedValue($this->_cachedSelectedValue);
            $this->resetCachedSelections();
        } else {
            if ($this->_cachedSelectedIndex !== -1) {
                $this->setSelectedIndex($this->_cachedSelectedIndex);
                $this->resetCachedSelections();
            } else {
                if ($this->_cachedSelectedValues !== null) {
                    $this->setSelectedValues($this->_cachedSelectedValues);
                    $this->resetCachedSelections();
                } else {
                    if ($this->_cachedSelectedIndices !== null) {
                        $this->setSelectedIndices($this->_cachedSelectedIndices);
                        $this->resetCachedSelections();
                    }
                }
            }
        }
    }