diff options
Diffstat (limited to 'framework/Web/UI/TClientScriptManager.php')
-rw-r--r-- | framework/Web/UI/TClientScriptManager.php | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/framework/Web/UI/TClientScriptManager.php b/framework/Web/UI/TClientScriptManager.php index 535e85b2..be6611cd 100644 --- a/framework/Web/UI/TClientScriptManager.php +++ b/framework/Web/UI/TClientScriptManager.php @@ -1,6 +1,6 @@ <?php -class TPostBackOptions extends TComponent +/*class TPostBackOptions extends TComponent { public $_actionUrl=''; public $_autoPostBack=false; @@ -69,7 +69,7 @@ class TPostBackOptions extends TComponent $this->_trackFocus=$value; } } - +*/ Prado::using('System.Web.Javascripts.*'); class TClientScriptManager extends TComponent @@ -133,6 +133,33 @@ class TClientScriptManager extends TComponent return $options->toJavascript(); } + /** + * Register a default button to panel. When the $panel is in focus and + * the 'enter' key is pressed, the $button will be clicked. + * @param TControl panel to register the default button action + * @param TControl button to trigger a postback + */ + public function registerDefaultButton($panel, $button) + { + $serializer = new TJavascriptSerializer( + $this->getDefaultButtonOptions($panel, $button)); + $options = $serializer->toJavascript(); + $code = "new Prado.WebUI.DefaultButton($options);"; + $scripts = $this->_page->getClientScript(); + $scripts->registerEndScript("prado:".$panel->getClientID(), $code); + } + + /** + * @return array default button options. + */ + protected function getDefaultButtonOptions($panel, $button) + { + $options['Panel'] = $panel->getClientID(); + $options['Target'] = $button->getClientID(); + $options['Event'] = 'click'; + return $options; + } + /** * Register client scripts. |