示例#1
0
 /**
  * @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;
 }