在yii中删除记录时更新CListView
我正在使用yii,我想在删除产品后更新我的clistview。 以下是clistview小部件代码在yii中删除记录时更新CListView,yii,Yii,我正在使用yii,我想在删除产品后更新我的clistview。 以下是clistview小部件代码 <?php $this->widget('zii.widgets.CListView', array( 'dataProvider'=>$dataProvider, 'viewData'=>array('exhibitorId'=>$exhibitorId), 'id'=>'productView', 'itemV
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$dataProvider,
'viewData'=>array('exhibitorId'=>$exhibitorId),
'id'=>'productView',
'itemView'=>'_productView',
'sortableAttributes'=>array(
'productName',
'productType',
'productBrand',
'description'
)
)); ?>
问题:-
现在的问题是,当我第一次从clistview中删除产品时。它可以很好地删除产品并更新列表。但之后,当我点击下一个产品的删除链接时,它什么也不做。那么我该如何克服这个问题呢?问题是,当整个页面加载时,您的事件会附加到
标记,而ajax刷新后没有附加事件
在产品视图中,使用
标记包装整个内容:
<span class="product" data-product-id="<?php echo $data['productId']; ?>"> .... </span>
虽然我昨天才解决了这个问题,而且与你给出的解决方案相同。无论如何,谢谢你的回答和帮助。。。干杯:)
public function actionDeleteMyThisProduct($product,$exhibitor)
{
if(Yii::app()->request->isAjaxRequest)
{
$productId=(int)$product;
$exhibitorId=(int)$exhibitor;
if($productId !== 0 && $exhibitorId !== 0)
{
$deleteProduct= Exhibitorproducts::model()->loadRecordsByexhibitorIdAndProductId($exhibitorId, $productId);
ProductPhotos::model()->deleteAllPhotosByExhibitorIdAndProductId($exhibitorId, $productId);
if(!empty($deleteProduct))
{
$deleteProduct->delete();
}
}
}
}
<span class="product" data-product-id="<?php echo $data['productId']; ?>"> .... </span>
$('#productView').on('click','.product', function(e){
var $target = $(e.target);
e.preventDefault();
$.post('<?php echo Yii::app()->createUrl('deleteMyThisProduct') ?>', {'product': $target.data('product-id')}).
done(function(){
$.fn.yiiListView.update("productView");
})
})