summaryrefslogtreecommitdiff
path: root/framework/Web
diff options
context:
space:
mode:
Diffstat (limited to 'framework/Web')
-rw-r--r--framework/Web/Javascripts/source/prado/validator/validation3.js4
-rw-r--r--framework/Web/UI/WebControls/TCheckBoxList.php34
2 files changed, 31 insertions, 7 deletions
diff --git a/framework/Web/Javascripts/source/prado/validator/validation3.js b/framework/Web/Javascripts/source/prado/validator/validation3.js
index 44e175bd..cb6d58c5 100644
--- a/framework/Web/Javascripts/source/prado/validator/validation3.js
+++ b/framework/Web/Javascripts/source/prado/validator/validation3.js
@@ -607,10 +607,6 @@ Prado.WebUI.TBaseValidator.prototype =
this.options = options;
this.control = $(options.ControlToValidate);
- if (!this.control && this.isListControlType()){
- this.control = $(options.ControlToValidate + '_c0').parentNode;
- }
-
this.message = $(options.ID);
if(this.control && this.message)
{
diff --git a/framework/Web/UI/WebControls/TCheckBoxList.php b/framework/Web/UI/WebControls/TCheckBoxList.php
index d0f4c7ce..51b363ad 100644
--- a/framework/Web/UI/WebControls/TCheckBoxList.php
+++ b/framework/Web/UI/WebControls/TCheckBoxList.php
@@ -358,7 +358,27 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont
$page->registerRequiresPostData($this->_repeatedControl);
}
}
-
+
+ /**
+ * Wether the list should be rendered inside a span or not
+ *
+ *@return boolean true if we need a span
+ */
+ protected function getSpanNeeded ()
+ {
+ if ($this->getRepeatLayout()===TRepeatLayout::Raw)
+ {
+ $id=$this->getID();
+ // Check if we have a validator registered for this control
+ foreach ($this->getPage()->getValidators() as $v)
+ {
+ if ($v->getControlToValidate()===$id)
+ return true;
+ }
+ }
+ return false;
+ }
+
/**
* Renders the checkbox list control.
* This method overrides the parent implementation.
@@ -368,6 +388,11 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont
{
if($this->getItemCount()>0)
{
+ if ($needSpan=$this->getSpanNeeded())
+ {
+ $writer->addAttribute('id', $this->getClientId());
+ $writer->renderBeginTag('span');
+ }
$this->_isEnabled=$this->getEnabled(true);
$repeatInfo=$this->getRepeatInfo();
$accessKey=$this->getAccessKey();
@@ -379,7 +404,9 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont
$this->setTabIndex(0);
$repeatInfo->renderRepeater($writer,$this);
$this->setAccessKey($accessKey);
- $this->setTabIndex($tabIndex);
+ $this->setTabIndex($tabIndex);
+ if ($needSpan)
+ $writer->renderEndTag();
}
//checkbox skipped the client control script in addAttributesToRender
if($this->getEnabled(true)
@@ -433,7 +460,8 @@ class TCheckBoxList extends TListControl implements IRepeatInfoUser, INamingCont
$options['ListName'] = $this->getUniqueID();
$options['ItemCount'] = $this->getItemCount();
return $options;
- }
+ }
+
}
?> \ No newline at end of file