diff --git a/src/Forms/DropdownField.php b/src/Forms/DropdownField.php
index 765b8a9df31..2793bb34fe2 100644
--- a/src/Forms/DropdownField.php
+++ b/src/Forms/DropdownField.php
@@ -2,8 +2,10 @@
namespace SilverStripe\Forms;
+use SilverStripe\Core\Convert;
use SilverStripe\ORM\ArrayList;
use SilverStripe\View\ArrayData;
+use SilverStripe\ORM\FieldType\DBHTMLText;
/**
* Dropdown field, created from a select tag.
@@ -124,6 +126,39 @@ public function getHasEmptyDefault()
return parent::getHasEmptyDefault() || $this->Required();
}
+ /**
+ * Provides ';
+ $options[] = $item;
+ }
+
+ return implode("\n", $options);
+ }
+
/**
* @param array $properties
* @return string
@@ -141,6 +176,11 @@ public function Field($properties = [])
'Options' => new ArrayList($options)
]);
+ // Without this, changing the source will render the previous list due to cache
+ $OptionsHTML = new DBHTMLText('Options');
+ $OptionsHTML->setValue($this->renderOptionsHTML());
+ $properties['OptionsHTML'] = $OptionsHTML;
+
return parent::Field($properties);
}
}
diff --git a/templates/SilverStripe/Forms/DropdownField.ss b/templates/SilverStripe/Forms/DropdownField.ss
index da566e5b5b8..29d8f8ef54c 100644
--- a/templates/SilverStripe/Forms/DropdownField.ss
+++ b/templates/SilverStripe/Forms/DropdownField.ss
@@ -1,9 +1,3 @@