Yii中的CGridView的大家用的都很爽,但是对于一些细节的使用方法可能还不是太清楚,今天准备使用CGridView实现批量操作的时候不知如何入手,然后一番百度谷歌。找到了自己想要的代码,分享一下。

    第一步:CGridViewcolumns添加如下代码,作用是添加多选框。

array(
                        'selectableRows' => 2,
                        'footer' => '<button type="button" onclick="GetCheckbox();" style="width:76px">批量删除</button>',
                        'class' => 'CCheckBoxColumn',
                        'headerHtmlOptions' => array('width'=>'33px'),
                        'checkBoxHtmlOptions' => array('name' => 'selectdel[]'),
 ),

    第二步:添加全选的效果的JS

 

  <script type="text/javascript">
  /*<![CDATA[*/
  var GetCheckbox = function (){
        var data=new Array();
        $("input:checkbox[name='selectdel[]']").each(function (){
                if($(this).attr("checked")=="checked"){
                        data.push($(this).val());
                }
        });
        if(data.length > 0){
                $.post('<?php echo CHtml::normalizeUrl(array('/admin/words/delall/'));?>',{'selectdel[]':data}, function (data) {
                        var ret = $.parseJSON(data);
                        if (ret != null && ret.success != null && ret.success) {
                                $.fn.yiiGridView.update('yw1');
                        }
                });
        }else{
                alert("请选择要删除的关键字!");
        }
}
/*]]>*/
</script>

第三步:在Action中添加如下代码,要符合自己的处理逻辑修改即可

public function actionDelall()
        {
                if (Yii::app()->request->isPostRequest)
                {
                        $criteria= new CDbCriteria;
                        $criteria->addInCondition('id', $_POST['selectdel']);
                        Words::model()->deleteAll($criteria);//Words换成你的模型
                       
                        if(isset(Yii::app()->request->isAjaxRequest)) {
                                echo CJSON::encode(array('success' => true));
                        } else
                                $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
                }
                else
                        throw new CHttpException(400,'Invalid request. Please do not repeat this request again.');
        }

转载地址:http://www.yiichina.com/forum/thread-469-1-1.html

所有评论
加载评论 ...
发表评论