![](/img/trans.png)
[英]Yii CGridView/CListView call JavaScript function on AJAX update
[英]Yii CGridView button - call parametrized javascript function
我需要用一個按鈕創建一個CGridView,並使按鈕調用javascript函數,如下所示:
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'projectCities',
'summaryText' => '',
'dataProvider' => $model->getCitiesProvider(),
'columns' => array(
'name',
'directional',
'customCount',
array(
'class'=>'CButtonColumn',
'template'=>'{delete}',
'buttons' => array(
'delete' => array(
'url' => '',
'click' => '',
'options' => array(
'onclick' => 'removeCity(this, $data->idCity,
$model->idProject); return false;',
),
)
),
)
),
));
當然,它不起作用,因為生成的html是:
<a class="delete" title="Delete" onclick="removeCity(this, $data->idCity, $model->idProject); return false;">
有沒有辦法做到這一點,以便在javascript函數調用中使用正確的ID?
//Controller:
public function gridButtons($model)
{
return array(
'class'=>'CButtonColumn',
'template'=>'{delete}',
'buttons' => array(
'delete' => array(
'url' => '',
'click' => '',
'options' => array(
'onclick' => sprintf(
'js:removeCity(this, %d, %d);return false;',
$model->idCity, $model->idProject
),
),
)
),
)
}
//view
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'projectCities',
'summaryText' => '',
'dataProvider' => $model->getCitiesProvider(),
'columns' => array(
'name',
'directional',
'customCount',
array(
'value' => array($this, 'gridButtons'),
),
),
));
您可以使用雙引號激活字符串中的變量替換:
'onclick' => "js:removeCity(this, {$data->idCity}, {$model->idProject}); return false;",
我面臨這個問題,也解決了這個問題。可能是你的問題是在js函數停留的'click'參數之后關閉'option'數組,但是下面這種方式在'click'參數之前關閉了'option'數組。 ,可能是這個解決問題對您有所幫助。
$this->widget('zii.widgets.grid.CGridView', array(
'id' => 'projectCities',
'summaryText' => '',
'dataProvider' => $model->getCitiesProvider(),
'columns' => array(
'name',
'directional',
'customCount',
array(
'class'=>'CButtonColumn',
'template'=>'{delete}',
'buttons' => array(
'delete' => array(
'url'=>'$data->id',
'visible'=>'true',
'options'=>array('class'=>'viewbtns'),
'click'=>'js: function(){ viewProfile((this).attr("href"),"openDialog" ); return false; }',
)
),
)
),
));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.