在基于YII的项目中,我有一个cgridview
。要求是将整行或每列值设为链接,单击行中的任何链接将触发ajax调用。我从这里试过了
How to display rows of CGridView as a link
但发出如果我将整行作为可点击的方式,则需要我查看操作。
如果我将一行中的单个列值作为链接并调用ajax函数,则会出现以下错误。
Property "CDataColumn.options" is not defined.
我需要帮助将整行设为可点击并调用ajax函数或单个行值以在单击时调用ajax函数。
非常感谢任何正确方向的帮助或指导。
//code for making trading name column in cgridview as clickable and call ajax
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'customer-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
array(
'name' => 'trading_name',
'value' => 'CHtml::link($data->trading_name, Yii::app()
->createUrl("customer/view/",array("id"=>$data->primaryKey)))',
'type' => 'raw',
'options' => array('ajax' => array('type' => 'get', 'url'=>'js:$(this).attr("href")',
'success' => 'js:function(data) {
$("#tab1").html(data);')
),
),
'email',
'site_code',
array(
'class'=>'CButtonColumn',
),
答案 0 :(得分:1)
经过一番麻烦后,我能够将cgridview的一行作为一个链接,并在点击每一行时调用一个AJAX函数。下面是代码。可能对某人有帮助。
selectionChanged
完成了这个伎俩。在单击任何行时调用ajax函数并显示
每个客户的信息都是网格下面的div。
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'customer-grid',
'dataProvider'=>$model->search(),
'selectionChanged'=>'js:function(id){
n = $.fn.yiiGridView.getSelection(id);
if (n>0){
$.ajax({
url: "'.Yii::app()->urlManager->createUrl('customer/view/').'",
type: "GET",
data: {"id": parseInt(n)},
dataType: "html",
success: function(data) {
$("#customer-div").html(data);
}
});',
'filter'=>$model,
'columns'=>array(
'id',
array(
'name' => 'trading_name',
'value' => 'CHtml::link($data->trading_name, Yii::app()
->createUrl("customer/view/",array("id"=>$data->primaryKey)))',
'type' => 'raw',
'options' => array('ajax' => array('type' => 'get', 'url'=>'js:$(this).attr("href")',
'success' => 'js:function(data) {
$("#tab1").html(data);')
),
),
'email',
'site_code',
array(
'class'=>'CButtonColumn',
),
答案 1 :(得分:0)
'options': http://www.yiiframework.com/doc/api/1.1/CGridColumn#htmlOptions-detail
如果你想设置选项,你必须使用'htmlOptions'。
但是如果你想使用带链接的ajax,你必须使用Chtml :: ajaxLink(): http://www.yiiframework.com/doc/api/1.1/CHtml#ajaxLink-detail
我希望它可以帮到你