Exemple #1
0
 public function exchangeWidget(IView $aView, $sWidgetId, $nWay = self::MODEL_TO_WIDGET)
 {
     if (!isset($this->arrLinks[$sWidgetId])) {
         return;
     }
     if (!($aModel = $aView->model())) {
         throw new Exception("视图尚未设置模型,无法进行数据交换");
     }
     if (!($aWidget = $aView->widget($sWidgetId))) {
         throw new Exception("视图中缺少指定的窗体(%s),无法进行数据交换", $sWidgetId);
     }
     switch ($nWay) {
         // 从模型数据到ui窗体
         case self::MODEL_TO_WIDGET:
             $sModelName = end($this->arrLinks[$sWidgetId]);
             $aWidget->setValueFromString($aModel->data($sModelName));
             break;
             // 从ui窗体到模型控件
         // 从ui窗体到模型控件
         case self::WIDGET_TO_MODEL:
             $widgetVal = $aWidget->valueToString();
             foreach ($this->arrLinks[$sWidgetId] as $sModelName) {
                 $aModel->setData($sModelName, $widgetVal);
             }
             break;
         default:
             throw new Exception("参数(\$nWay)无效");
             break;
     }
 }