skye 2011-05-27 17:21:46 14586次浏览 26条回复 3 0 0

1,CGridView中的columns添加

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

作用是添加多选框 2.js代码

<script type="text/javascript">
    /*<![CDATA[*/
    var GetCheckbox = function (){
        var data=new Array();
        $("input:checkbox[name='selectdel[]']").each(function (){
            if($(this).attr("checked")==true){
                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>

3.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.');
}

图片 [attach]183[/attach]

  • 回复于 2013-01-11 09:58 举报

    我这也有问题 你是怎么解决的啊

  • 回复于 2013-01-11 10:39 举报

    我也是这个问题 不在吗

  • 回复于 2013-01-11 14:31 举报

    没人看过这个帖子么 同志们

  • 回复于 2013-03-03 16:28 举报

    使用gridview依照以上方法操作,无js在页面中,全选没有反映,大家遇到过么?

  • 回复于 2013-05-05 10:25 举报

    我想在项目中批量录入数据,参考批量删除这个例子,遇到 点击《批量删除》提示“请选择要删除的关键字” 的问题,也想不通就不断的试,花了一天时间明白了错误的原因, 要把js语句if($(this).attr("checked")==true) 判断 右边 的 true 改成 'checked'这样js就可以正常工作了,但是我要的功能是批量录入,还要修改js,和action

  • 回复于 2016-02-23 10:09 举报

    我这边报找不到CCheckBoxColumn这个类的错误,是怎么回事啊,求指导

您需要登录后才可以回复。登录 | 立即注册