GridView 中数据有如何支持ajaxLink

如下的语句不能执行。

array(

        'name' => 'status',


        'type' => 'raw',


        'value' => 'CHtml::ajaxLink($data->statusIconFormat,


            Yii::app()->controller->createUrl("posts/changeStatus"),


            array(


                "type" => "get",


                "data" => "id=" . $data->id,


                "dataType" => "text",


                "update" => "#status{$data->id}",


            ),


            array("id" => "status{$data->id}")


        )'


    ),

此语句在不是 ajax 的情况下。会产生如下 js代码

jQuery(’#status1’).live(‘click’,function(){jQuery.ajax({‘type’:‘get’,‘data’:‘id=1’,‘dataType’:‘text’,‘url’:’/index.php?r=backend/posts/changeStatus’,‘cache’:false,‘success’:function(html){jQuery("#status1").html(html)}});return false;});

同时也可以正常更新。

如果是查询出来的数据,因为gridview 利用ajax处理数据,发现就不可以更新了。应该是 CHtml::ajaxlink 生成的js 语句并没有传入进来。

想这种情况怎么处理呢?

这个问题我也问过,强哥还没回答,呵呵

已经这样搞定。




array(

            'name' => 'is_picking',

            'type' => 'raw',

            'value' => 'CHtml::link($data->isPickingIconFormat, Yii::app()->controller->createUrl("changePicking",array("id"=>$data->id)), array("onclick" => "onToggleClick(\"picking_\" + $data->id); return false;", "id" => "picking_" . $data->id))'

        ),



JS代码




function onToggleClick(id) {

    url = $('#' + id).attr('href');

    $.ajax({

        url: url,

        success: function(html) {

            $('#' + id).html(html);

        }

    });

    return false;

}



已经这样搞定。




array(

            'name' => 'is_picking',

            'type' => 'raw',

            'value' => 'CHtml::link($data->isPickingIconFormat, Yii::app()->controller->createUrl("changePicking",array("id"=>$data->id)), array("onclick" => "onToggleClick(\"picking_\" + $data->id); return false;", "id" => "picking_" . $data->id))'

        ),



JS代码




function onToggleClick(id) {

    url = $('#' + id).attr('href');

    $.ajax({

        url: url,

        success: function(html) {

            $('#' + id).html(html);

        }

    });

    return false;

}




 array(

                  'name'=>'update',

                  'type'=>'raw',

                   'value' => 'CHtml::ajaxLink($data->update == 0?"No":"Yes", Yii::app()->controller->createUrl("changeUpdate",array("id"=>$data->id)), array("update" => "#update_$data->id"), array("id" => "update_" . $data->id))'

        ),

这样可以~~~