Yii:最佳性能在CGridview中包含JS / Ajax函数的特殊方法

时间:2013-02-05 14:14:34

标签: yii yii-extensions

Yii新手在这里 我已经尝试过多次尝试在CGRIDVIEW中以简单易懂的方式包含Ajax / JS函数, 代码基本上是

'click'=> "function (){
    $.fn.yiiGridView.update('news-grid', {
    type:'POST',
    url:$(this).attr('href'),
    success:function(data) {
        $('#AjFlash').html(data).fadeIn().animate({
            opacity: 1.0
        }, 3000).fadeOut('slow');

        $.fn.yiiGridView.update('news-grid');
    }
})
return false;

}“

在您看来,最简洁,最有效的方式是什么? 感谢您的时间 !!!

1 个答案:

答案 0 :(得分:0)

我不知道,但我没有看到必须强制网格在单个操作上更新两次,我也不喜欢包含我的javascript。根据我的需要,有几种方法,为了这个答案,你会看到最简单的方法:

在单独的文件中创建一个全局对象:

//app.js
var App = {
  updateSomething: function () {
    $.post(
      $(this).attr('href'),
      success:function(data) {
        $('#AjFlash').html(data).fadeIn().animate({
          opacity: 1.0
        }, 3000).fadeOut('slow');
        $.fn.yiiGridView.update('news-grid');
      }
    );
    return false;
  }
};

您可以通过调用CCLientScript::registerScriptFile

从控制器中包含该文件
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl."js/app.js");

在你的网格上:

'click'=> "js:App.updateSomething",

有更好的方法,但对于希望拥有某种组织的js初学者来说,这更为简单。