Yii:在CGridview中包含JS/Ajax函数的最佳性能优势
我是新手 我不止一次地尝试在我的CGRIDVIEW中以一种简单明了的方式包含Ajax/JS函数, 代码基本上是Yii:在CGridview中包含JS/Ajax函数的最佳性能优势,yii,yii-extensions,Yii,Yii Extensions,我是新手 我不止一次地尝试在我的CGRIDVIEW中以一种简单明了的方式包含Ajax/JS函数, 代码基本上是 'click'=> "function (){ $.fn.yiiGridView.update('news-grid', { type:'POST', url:$(this).attr('href'), success:function(data) { $('#AjFlash').html(data).fadeIn().animat
'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;
}
在你看来,什么是最干净,最有利于性能的方式包括这一点?
谢谢你的时间 我不知道,但我认为没有必要在一次操作中强制网格更新两次,我也不喜欢像这样包含我的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;
}
};
您可以通过调用
在您的网格上:
'click'=> "js:App.updateSomething",
有很多更好的方法,但对于想要有某种组织的js初学者来说,这更简单。你到底想做什么?为什么要调用$.fn.yiiGridView.update'news-grid';再次成功吗?基本上,我调用一个控制器函数来更新数据库值并相应地更新gridview。我遵循了这个教程,$.fn.yii。。。已弃用,新语法为$'news-grid'.yiiGridView'update';所以,为了让我只重新加载CGridview而不是整个页面,我可以直接使用这个功能吗?谢谢Asgaroth的快速回答!我仍然是一名JS/AJAX初学者,我在这里试图实现的是使用CButtonColumn更新一个值,在url中我添加了一个指向控制器操作的链接,但我现在想要实现的是更新cgridview,而不必重新加载整个页面。不幸的是,我遵循了这个教程,因为它是我找到的唯一教程。如果你能给我指出一个更好更广泛的,我将永远感谢你!的确如此,谢谢你!但是页面正在被重新加载,但正如我所说的,我正试图以一种有利于性能的方式实现它,其中只有网格被更新。
'click'=> "js:App.updateSomething",