假设我在页面上呈现了组件(比如像 Yahoo Finance 这样的图表)。组件视图模板包含一堆 a_hrefs,我想在图中切换周期。我在组件中创建了事件和事件处理程序。我有两个问题:
- 如何通过这些 a_hrefs 在 Graph Component 上引发事件(它们应该是 Graph 的一部分吗?)?
- 如何在不丢失当前页面上下文(部分、过滤器 - 指定为 $_GET 值)的情况下重绘图表?
我的图形组件如下所示:
Yii::import('zii.widgets.CPortlet');
class Graph extends CPortlet
{
private $_period;
/* **************************************** *
* COMPONENT PROPERTIES *
* **************************************** */
public function getPeriod()
{
return $this->_period;
}
public function setPeriod($period)
{
$this->_period = $period;
}
/* **************************************** *
* GENERIC *
* **************************************** */
public function init()
{
parent::init();
// assign event handlers
$this->onPeriodChange = array($this, 'handlePeriodChange');
}
protected function renderContent()
{
$this->render('graph');
}
/* **************************************** *
* EVENTS *
* **************************************** */
public function onPeriodChange($event)
{
$this->raiseEvent('onPeriodChange', $event);
}
/* **************************************** *
* EVENT HANDLERS *
* **************************************** */
public function handlePeriodChange($event)
{
// CODE
}
}