public function ProcessMessages() { $nameSuffix = ExtractInputValue('namesuffix', METHOD_POST); $columns = $this->grid->GetViewColumns(); foreach ($columns as $column) { $inlineEditColumn = $column->GetInsertOperationColumn(); if (isset($inlineEditColumn)) { $editControl = $inlineEditColumn->GetEditControl(); $editControl->SetName($editControl->GetName() . $nameSuffix); } } $this->GetDataset()->Insert(); $exceptions = array(); foreach ($this->GetColumns() as $column) { try { $column->ProcessMessages(); } catch (Exception $e) { $exceptions[] = $e; } } foreach ($this->GetColumns() as $column) { try { $column->AfterSetAllDatasetValues(); } catch (Exception $e) { $exceptions[] = $e; } } $message = ''; $oldFieldValues = $this->GetDataset()->GetCurrentFieldValues(); $fieldValues = $this->GetDataset()->GetCurrentFieldValues(); if ($this->CanChangeData($fieldValues, $message)) { if (count($exceptions) > 0) { $this->HandleError($this->ExceptionsToErrorMessage($exceptions), false); return; } try { $this->WriteChangesToDataset($oldFieldValues, $fieldValues, $this->GetDataset()); $this->GetDataset()->Post(); $fieldValues = ArrayUtils::Merge($fieldValues, $this->GetDataset()->GetInsertFieldValues()); $this->DoAfterChangeData($fieldValues); $primaryKeyValues = $this->GetDataset()->GetPrimaryKeyValues(); $this->GetDataset()->SetSingleRecordState($primaryKeyValues); $this->GetDataset()->Open(); $this->GetDataset()->Next(); } catch (Exception $e) { $this->HandleError($this->ExceptionToErrorMessage($e), false); return; } } else { $this->HandleError($message, true); return; } $this->grid->SetGridMessage($message); }
/** * @return array */ public final function GetViewData() { return ArrayUtils::Merge(array('ReadOnly' => $this->GetReadOnly()), $this->DoGetViewData()); }