Hi,
I noticed something strange when i try to render the content of a TActivePanel:
I've made a sample with 3 test, each test is made of a TEST button which render an active panel which contain:
- 1 A textbox and another
TActivePanel containing a textbox
=> loaded with the page
- 2 the same
=> loaded on callback :bug-> the nested active panel is rendering the whole main panel content (but only one time, a second callback makes a good render...)
- 3 A textbox and a normal
TPanel containing a textbox
=> loaded on callback :OK
So, it works good with a TPanel not with a TActivePanel
Sample.page:
<com:TForm ID="form1">
<com:THyperLink Text="1 - Test without callback" NavigateUrl="<%= $_SERVER['REQUEST_URI'] %>" /><br />
<com:TActiveLinkButton Text="2 - Test callback with 2nd ActivePanel" OnCallback="Page.load1" /><br />
<com:TActiveLinkButton Text="3 - Test callback without 2nd ActivePanel" OnCallback="Page.load2" /><br />
<hr />
<com:TActivePanel ID="panel1">
<com:TMultiView ID="multiView" ActiveViewIndex="0">
<com:TView>
1 - Test without callback
<pre style="color:#006600">
<com:TActivePanel ID="panel2">
<com:TActiveTextBox ID="tb1" Columns="30" Text="ActiveTextBox" />
<com:TActivePanel ID="panel3">
<com:TTextBox ID="tb2" Columns="30" Text="TextBox in ActivePanel" />
</com:TActivePanel>
</com:TActivePanel>
</pre>
<com:TActiveButton Text="Test" OnCallback="Page.test1" /><br />
<com:TActivePanel ID="panel2">
<com:TActiveTextBox ID="tb1" Columns="30" Text="ActiveTextBox" />
<com:TActivePanel ID="panel3">
<com:TTextBox ID="tb2" Columns="30" Text="TextBox in ActivePanel" />
</com:TActivePanel>
</com:TActivePanel>
</com:TView>
<com:TView>
2 - Test callback with 2nd ActivePanel
<pre style="color:#006600">
<com:TActivePanel ID="panel4">
<com:TActiveTextBox ID="tb3" Columns="30" Text="ActiveTextBox" />
<com:TActivePanel ID="panel5">
<com:TTextBox ID="tb4" Columns="30" Text="TextBox in ActivePanel" />
</com:TActivePanel>
</com:TActivePanel>
</pre>
<com:TActiveButton Text="Test" OnCallback="Page.test2" /><br />
<com:TActivePanel ID="panel4">
<com:TActiveTextBox ID="tb3" Columns="30" Text="ActiveTextBox" />
<com:TActivePanel ID="panel5">
<com:TTextBox ID="tb4" Columns="30" Text="TextBox in ActivePanel" />
</com:TActivePanel>
</com:TActivePanel>
</com:TView>
<com:TView>
3 - Test callback without 2nd ActivePanel
<pre style="color:#006600">
<com:TActivePanel ID="panel6">
<com:TActiveTextBox ID="tb5" Columns="30" Text="ActiveTextBox" />
<com:TPanel ID="panel7">
<com:TTextBox ID="tb6" Columns="30" Text="TextBox in Panel" />
</com:TPanel>
</com:TActivePanel>
</pre>
<com:TActiveButton Text="Test" OnCallback="Page.test3" /><br />
<com:TActivePanel ID="panel6">
<com:TActiveTextBox ID="tb5" Columns="30" Text="ActiveTextBox" />
<com:TPanel ID="panel7">
<com:TTextBox ID="tb6" Columns="30" Text="TextBox in Panel" />
</com:TPanel>
</com:TActivePanel>
</com:TView>
</com:TMultiView>
</com:TActivePanel>
</com:TForm>
Sample.php
<?php
class Sample extends TPage
{
public function load1($sender,$param)
{
$this->multiView->setActiveViewIndex(1);
$this->panel1->renderControl($param->getNewWriter());
}
public function load2($sender,$param)
{
$this->multiView->setActiveViewIndex(2);
$this->panel1->renderControl($param->getNewWriter());
}
public function test1($sender,$param)
{
$this->tb1->setText($this->tb1->getText().' +1');
$this->tb2->setText($this->tb2->getText().' +1');
$this->panel2->renderControl($param->getNewWriter());
}
public function test2($sender,$param)
{
$this->tb3->setText($this->tb3->getText().' +1');
$this->tb4->setText($this->tb4->getText().' +1');
$this->panel4->renderControl($param->getNewWriter());
}
public function test3($sender,$param)
{
$this->tb5->setText($this->tb5->getText().' +1');
$this->tb6->setText($this->tb6->getText().' +1');
$this->panel6->renderControl($param->getNewWriter());
}
}
?>