cjridview中的ajaxlink;错误undefined不是yiigridview.js中的函数

时间:2014-05-17 15:53:52

标签: javascript ajax yii yii-widgets

我收到错误了 Uncaught TypeError: undefined is not a function jquery.yiigridview.js

我尝试了几种方法,但我不认为我这样做是正确的。 我目前有:

  $this->widget ( 'bootstrap.widgets.TbGridView', array (
  'type' => 'condensed',
  'id'=>'inq',
  'dataProvider' => $dataProvider,
  'template' => '{items}{pager}',
  'columns' => array (
        array(
        'header'=>'',
        'type'=>'raw',
        'htmlOptions'=>array('style'=>'width:30px'),
        'value'=>function($data,$row){
        if($data->message_target_read == "Read")
        return CHtml::ajaxLink('<img src="'.Yii::app()->baseUrl.'/images/site/star-read.png">',
                  Yii::app()->createUrl("controller/action", array("id"=>$data->id)),
                  array("complete"=>"function(){
                  $.fn.yiiGridView.update('inq', {
                  type: 'POST',
                  url: $(this).attr('href'),
                  success: function() {
                  $.fn.yiiGridView.update('inq');}
                  });return false;}"));

我还尝试使用chtml::link使用类并获取Yii::app()->clientScript->registerCoreScript('class',但仍然会重定向整个页面。我也尝试过这样做

CHtml::ajaxLink("<img>",Yii::app()->createUrl("controller/action", array("id"=>$data->id)),array( 
type: 'POST',
url: $(this).attr('href'),
success: function() {
$.fn.yiiGridView.update('inq');
                                }

1 个答案:

答案 0 :(得分:0)

你错过了CHtml::ajaxLink()的结构。您已在自定义ID array("id"=>$data->id))后将其关闭。这可能导致功能失败。

请检查以下结构。

<?php
$dataProvider = new CActiveDataProvider('FlightSearch');
$this->widget('bootstrap.widgets.TbGridView', 
array(
    'type' => 'striped bordered condensed',
    'id' => 'inq',
    'dataProvider' => $dataProvider,
    'template' => "{items}{pager}",
    'columns' =>
    array
    (
        array('name' => 'column1', 'header' => 'Column Title'),
        array
        (
            'header' => '',
            'type' => 'raw',
            'htmlOptions' => array('style' => 'width:30px'),
            'value' => function($data, $row) 
            {
                if($data->message_target_read == "Read")
                {
                    return CHtml::ajaxLink('a link', 
                    Yii::app()->createUrl("controller/action", 
                    array("id" => $data->id), 
                    array("complete" => "function()
                    { 
                          /*=====Your jQuery functionality start=====*/
                          $.fn.yiiGridView.update('inq', {
                          type: 'POST',
                          url: $(this).attr('href'),
                          success: function() 
                          {
                                $.fn.yiiGridView.update('inq');
                          }
                          });return false;}"))
                          /*=====Your jQuery functionality end=====*/
                    );
                }
            })),
));
?>