/** * @return TListItem new item. */ protected function createNewListItem($text = null) { $item = new TListItem(); if ($text !== null) { $item->setText($text); } return $item; }
/** * This method is invoked when <b>OnDataBinding</b> event is raised. * * Opens up the data source and creates all the TListItem controls * needed to render the data source. * * @param TEventParameter event parameter */ protected function onDataBinding($param) { parent::onDataBinding($param); if (is_null($this->dataSource)) { return; } // Reset all values. $this->items->clear(); $textField = $this->getDataTextField(); $valueField = $this->getDataValueField(); foreach ($this->dataSource as $key => $val) { if ($val instanceof IListItemSource) { $text = $val->getItemText(); $value = $val->getItemValue(); } else { if (strlen($textField)) { if (isset($val[$textField])) { $text = $val[$textField]; } else { throw new Exception('Invalid DataTextField property value'); } } else { $text = $val; } if (strlen($valueField)) { if (isset($val[$valueField])) { $value = $val[$valueField]; } else { throw new Exception('Invalid DataValueField property value'); } } else { $value = $key; } } $item = new TListItem(); $item->setText($text); $item->setValue("{$value}"); $item->setSelected($this->SelectedValue == $value); $this->items->add($item); } $this->dataSource = null; }