在使用jQuery的AJAX之后,如何在Yii中刷新网格视图?

时间:2015-01-12 14:04:29

标签: jquery ajax yii

我试图刷新网格,但是我收到了这个错误:

TypeError:$ .fn.GridView未定义

这是我的js代码:

$( document ).ready(function() {
        $("#username_filter").keyup(function( event ) {
            if ($(this).val().length >3){
                $.ajax({
                    url: "/common/main/filterData/",
                    type: "POST",
                    data: { username : $(this).val() },
                }).done(function() {
                    $.fn.GridView.update("#yw0");
                });
            }
        });
    });

这是观点:

.....
$this->widget('GridView', array(
        'dataProvider' => $data,
        //'filter' => '',
        'itemsCssClass'=>'table',
        'pager' => array(
                'class'                 => 'CLinkPager',
                'prevPageLabel'         => 'Previous',
                'nextPageLabel'         => 'Next',
                'header'                => '',
                'previousPageCssClass'  => 'btn btn-info btn-sm',
                'selectedPageCssClass'  => 'btn btn-warning btn-sm',
                'internalPageCssClass'  => 'btn btn-info btn-sm',
                'firstPageCssClass'     => 'btn btn-info btn-sm',
                'nextPageCssClass'      => 'btn btn-info btn-sm',
        ),
....

也许这是一个noob问题,但是在哪里生成了网格的id?

2 个答案:

答案 0 :(得分:1)

您可以为GridView指定自定义ID,只需为网格视图选项指定id属性

$this->widget('GridView', array(
    'id' => 'my_grid_id',
    'dataProvider' => $data,
    // ...
);

手动更新试试这个

$('#' + id).yiiGridView('update');

答案 1 :(得分:0)

应该是

$.fn.yiiGridView.update("yw0");

不是$.fn.GridView

设置gridview的id,只需为grid视图指定id属性。 例如:

$this->widget('GridView', array(
    'id' => 'custom_id',
    .....
));