Yii 小部件的CListView afterAjaxUpdate事件
控件可以在控制器视图上,也可以不在控制器视图上,一些控件会影响listView 我在CListView中暂停了afterAjaxUpdate JS事件。小部件-是一个产品过滤器,用于更新列表视图。我的问题是当我想在更新列表视图后更新过滤器时。 当然,我可以在列表视图中配置更新代码,但我认为这是错误的,因为这种行为属于过滤器小部件 我在小工具里试过这个Yii 小部件的CListView afterAjaxUpdate事件,yii,yii-events,Yii,Yii Events,控件可以在控制器视图上,也可以不在控制器视图上,一些控件会影响listView 我在CListView中暂停了afterAjaxUpdate JS事件。小部件-是一个产品过滤器,用于更新列表视图。我的问题是当我想在更新列表视图后更新过滤器时。 当然,我可以在列表视图中配置更新代码,但我认为这是错误的,因为这种行为属于过滤器小部件 我在小工具里试过这个 $("#' . $this->listViewId . '").yiiListView.settings.afterAjaxUpdate =
$("#' . $this->listViewId . '").yiiListView.settings.afterAjaxUpdate = function(id, data) {
console.log(id, data);
};
但是ListView js在下面,显然这是一个糟糕的解决方案
我考虑一些公共小部件事件,所以我可以通过过滤器小部件寻址到listview小部件,并将事件放在那个里
也许有人遇到过相关问题或有更好的想法?
谢谢 尝试用这种方式为您的CListView添加afterAjaxUpdate方法
<?php
Yii::app()->clientScript->registerScript('handle_ajax_function', "
function addLoadingClass(id,result)
{
$('.list-view-loading').show();
$('li.previous').addClass('disable');
$('li.next').addClass('disable');
}
function removeLoadingClass(id,result)
{
$('li.previous').removeClass('disable');
$('li.next').removeClass('disable');
try{
$('.list-view-loading').hide();
}catch(e){
alert(e);
}
}
");
?>
<?php
$this->widget('zii.widgets.CListView', array(
'id'=>'handle',
//'ajaxUpdate'=>false,
'dataProvider'=>$data,
'beforeAjaxUpdate'=>'addLoadingClass',
'afterAjaxUpdate'=>'removeLoadingClass',
'itemView'=>'myview',
));
?>
有趣的是,它会复制JS代码的某些部分,但这是更好的解决方案。非常感谢。