From 72a75d7d0f5681df3fd98c684ab6f22baefb365c Mon Sep 17 00:00:00 2001 From: xue <> Date: Sat, 22 Apr 2006 12:53:22 +0000 Subject: Merge from 3.0 branch till 956. --- .../pages/Controls/Samples/TRadioButtonList/Home.page | 2 +- framework/Web/UI/WebControls/TCheckBox.php | 10 +++++----- framework/Web/UI/WebControls/TRadioButton.php | 8 ++++++++ .../quickstart/Controls/CheckBoxTestCase.php | 16 ++++++++-------- .../quickstart/Controls/DataGrid3TestCase.php | 2 +- .../quickstart/Controls/DataList2TestCase.php | 4 ++-- .../quickstart/Controls/PanelTestCase.php | 2 +- 7 files changed, 26 insertions(+), 18 deletions(-) diff --git a/demos/quickstart/protected/pages/Controls/Samples/TRadioButtonList/Home.page b/demos/quickstart/protected/pages/Controls/Samples/TRadioButtonList/Home.page index 97fe260c..c079e875 100644 --- a/demos/quickstart/protected/pages/Controls/Samples/TRadioButtonList/Home.page +++ b/demos/quickstart/protected/pages/Controls/Samples/TRadioButtonList/Home.page @@ -135,7 +135,7 @@ Auto postback radio button list: -

Checkbox Lists with DataBinding

+

Radio Button Lists with DataBinding

diff --git a/framework/Web/UI/WebControls/TCheckBox.php b/framework/Web/UI/WebControls/TCheckBox.php index c3e5e640..ff7f57f7 100644 --- a/framework/Web/UI/WebControls/TCheckBox.php +++ b/framework/Web/UI/WebControls/TCheckBox.php @@ -307,12 +307,11 @@ class TCheckBox extends TWebControl implements IPostBackDataHandler, IValidatabl { $attributes=$this->getViewState('InputAttributes',null); if($attributes && $attributes->contains('value')) - $value=$attributes->itemAt('value'); + return $attributes->itemAt('value'); else if($this->hasAttribute('value')) - $value=$this->getAttribute('value'); + return $this->getAttribute('value'); else - $value=''; - return $value===''?$this->getUniqueID():$value; + return ''; } /** @@ -341,7 +340,8 @@ class TCheckBox extends TWebControl implements IPostBackDataHandler, IValidatabl if($clientID!=='') $writer->addAttribute('id',$clientID); $writer->addAttribute('type','checkbox'); - $writer->addAttribute('value',$this->getValueAttribute()); + if(($value=$this->getValueAttribute())!=='') + $writer->addAttribute('value',$value); if(($uniqueID=$this->getUniqueID())!=='') $writer->addAttribute('name',$uniqueID); if($this->getChecked()) diff --git a/framework/Web/UI/WebControls/TRadioButton.php b/framework/Web/UI/WebControls/TRadioButton.php index dc5320b6..9a523b55 100644 --- a/framework/Web/UI/WebControls/TRadioButton.php +++ b/framework/Web/UI/WebControls/TRadioButton.php @@ -101,6 +101,14 @@ class TRadioButton extends TCheckBox $this->setViewState('GroupName',$value,''); } + protected function getValueAttribute() + { + if(($value=parent::getValueAttribute())==='') + return $this->getUniqueID(); + else + return $value; + } + /** * @return string the name used to fetch radiobutton post data */ diff --git a/tests/FunctionalTests/quickstart/Controls/CheckBoxTestCase.php b/tests/FunctionalTests/quickstart/Controls/CheckBoxTestCase.php index 324c243f..f93786ab 100644 --- a/tests/FunctionalTests/quickstart/Controls/CheckBoxTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/CheckBoxTestCase.php @@ -9,28 +9,28 @@ class CheckBoxTestCase extends SeleniumTestCase $this->verifyTitle("PRADO QuickStart Sample", ""); // a regular checkbox - $this->click("//input[@name='ctl0\$body\$ctl0' and @value='ctl0\$body\$ctl0']", ""); + $this->click("//input[@name='ctl0\$body\$ctl0']", ""); // a checkbox with customized value $this->click("//input[@name='ctl0\$body\$ctl1' and @value='value']", ""); // an auto postback checkbox $this->verifyTextNotPresent("I'm clicked"); - $this->clickAndWait("//input[@name='ctl0\$body\$ctl2' and @value='ctl0\$body\$ctl2']", ""); + $this->clickAndWait("//input[@name='ctl0\$body\$ctl2']", ""); $this->verifyTextPresent("I'm clicked"); - $this->clickAndWait("//input[@name='ctl0\$body\$ctl2' and @value='ctl0\$body\$ctl2']", ""); + $this->clickAndWait("//input[@name='ctl0\$body\$ctl2']", ""); $this->verifyTextPresent("I'm clicked"); // a checkbox causing validation on a textbox $this->verifyNotVisible('ctl0_body_ctl3'); - $this->click("//input[@name='ctl0\$body\$ctl4' and @value='ctl0\$body\$ctl4']", ""); + $this->click("//input[@name='ctl0\$body\$ctl4']", ""); // $this->pause(1000); $this->verifyVisible('ctl0_body_ctl3'); - $this->click("//input[@name='ctl0\$body\$ctl4' and @value='ctl0\$body\$ctl4']", ""); + $this->click("//input[@name='ctl0\$body\$ctl4']", ""); // $this->pause(1000); $this->verifyVisible('ctl0_body_ctl3'); $this->type("ctl0\$body\$TextBox", "test"); - $this->clickAndWait("//input[@name='ctl0\$body\$ctl4' and @value='ctl0\$body\$ctl4']", ""); + $this->clickAndWait("//input[@name='ctl0\$body\$ctl4']", ""); $this->verifyNotVisible('ctl0_body_ctl3'); // a checkbox validated by a required field validator @@ -38,13 +38,13 @@ class CheckBoxTestCase extends SeleniumTestCase $this->click("//input[@type='submit' and @value='Submit']", ""); // $this->pause(1000); $this->verifyVisible('ctl0_body_ctl6'); - $this->click("//input[@name='ctl0\$body\$CheckBox' and @value='ctl0\$body\$CheckBox']", ""); + $this->click("//input[@name='ctl0\$body\$CheckBox']", ""); $this->clickAndWait("//input[@type='submit' and @value='Submit']", ""); $this->verifyNotVisible('ctl0_body_ctl6'); // a checkbox validated by a required field validator using AutoPostBack $this->verifyNotVisible('ctl0_body_ctl7'); - $this->click("//input[@name='ctl0\$body\$CheckBox2' and @value='ctl0\$body\$CheckBox2']", ""); + $this->click("//input[@name='ctl0\$body\$CheckBox2']", ""); // $this->pause(1000); $this->verifyVisible('ctl0_body_ctl7'); // $this->clickAndWait("//input[@name='ctl0\$body\$CheckBox2' and @value='ctl0\$body\$CheckBox2']", ""); diff --git a/tests/FunctionalTests/quickstart/Controls/DataGrid3TestCase.php b/tests/FunctionalTests/quickstart/Controls/DataGrid3TestCase.php index b92cc9f5..4f53a38e 100644 --- a/tests/FunctionalTests/quickstart/Controls/DataGrid3TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/DataGrid3TestCase.php @@ -19,7 +19,7 @@ class DataGrid3TestCase extends SeleniumTestCase $this->type("ctl0\$body\$DataGrid\$ctl2\$ctl7", "Design Pattern: Elements of Reusable Object-Oriented Software"); $this->type("ctl0\$body\$DataGrid\$ctl2\$ctl8", "Addison Wesley Professional"); $this->type("ctl0\$body\$DataGrid\$ctl2\$ctl9", "\$57.04"); - $this->click("//input[@name='ctl0\$body\$DataGrid\$ctl2\$ctl10' and @value='ctl0\$body\$DataGrid\$ctl2\$ctl10']", ""); + $this->click("//input[@name='ctl0\$body\$DataGrid\$ctl2\$ctl10']", ""); $this->select("ctl0\$body\$DataGrid\$ctl2\$Rating", "label=1"); $this->clickAndWait("link=Save", ""); diff --git a/tests/FunctionalTests/quickstart/Controls/DataList2TestCase.php b/tests/FunctionalTests/quickstart/Controls/DataList2TestCase.php index 9b6e98d2..8b4e6811 100644 --- a/tests/FunctionalTests/quickstart/Controls/DataList2TestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/DataList2TestCase.php @@ -22,7 +22,7 @@ class DataList2TestCase extends SeleniumTestCase $this->clickAndWait("id=ctl0_body_DataList_ctl5_ctl0", ""); $this->type("ctl0\$body\$DataList\$ctl5\$ProductQuantity", "11"); $this->type("ctl0\$body\$DataList\$ctl5\$ProductPrice", "140.99"); - $this->click("//input[@name='ctl0\$body\$DataList\$ctl5\$ProductImported' and @value='ctl0\$body\$DataList\$ctl5\$ProductImported']", ""); + $this->click("//input[@name='ctl0\$body\$DataList\$ctl5\$ProductImported']", ""); $this->clickAndWait("link=Save", ""); // verify item is saved @@ -34,7 +34,7 @@ class DataList2TestCase extends SeleniumTestCase $this->clickAndWait("id=ctl0_body_DataList_ctl3_ctl1", ""); $this->type("ctl0\$body\$DataList\$ctl3\$ProductName", "Hard Drive"); $this->type("ctl0\$body\$DataList\$ctl3\$ProductQuantity", "23"); - $this->click("//input[@name='ctl0\$body\$DataList\$ctl3\$ProductImported' and @value='ctl0\$body\$DataList\$ctl3\$ProductImported']", ""); + $this->click("//input[@name='ctl0\$body\$DataList\$ctl3\$ProductImported']", ""); $this->clickAndWait("link=Cancel", ""); // verify item is canceled diff --git a/tests/FunctionalTests/quickstart/Controls/PanelTestCase.php b/tests/FunctionalTests/quickstart/Controls/PanelTestCase.php index 32134512..a73c76d4 100644 --- a/tests/FunctionalTests/quickstart/Controls/PanelTestCase.php +++ b/tests/FunctionalTests/quickstart/Controls/PanelTestCase.php @@ -8,7 +8,7 @@ class PanelTestCase extends SeleniumTestCase $this->verifyTextPresent("This is panel content with", ""); $this->verifyElementPresent("//span[text()='label']"); $this->verifyTextPresent("grouping text", ""); - $this->click("//input[@name='ctl0\$body\$ctl17' and @value='ctl0\$body\$ctl17']", ""); + $this->click("//input[@name='ctl0\$body\$ctl17']", ""); $this->verifyTextNotPresent("You have clicked on 'button2'."); $this->clickAndWait("//input[@type='submit' and @value='button2']", ""); $this->verifyTextPresent("You have clicked on 'button2'."); -- cgit v1.2.3