yii listview通过自定义的按钮控制listview的排序方法

想通过额外的按钮来控制yii的组件listview 不知道怎么操作,搜索了半天的百度,google后无果,但一篇文章给了个思路(这里给个连接link  http://www.yiibase.com/yii/view/23.html);看到这篇文章结合了其他的文章后.突然想到是不是可以这样.因为本人对 CDbCriteria 和 CActiveDataProvider 没有足够多的认识,所以想了个折中的办法.

首先现在模型里添加一个字段

public $sortbtn;

然后在rule规则里把这个字段放到safe里的on=>search

array('sortbtn,', 'safe', 'on'=>'search'),

这样就可以应用自己的字段了,然后我在model中的search方法中添加了这样一句,即当sortben有值的时候按id正序,没值按逆序

        if(empty($this->sortbtn)){
                    $criteria->order="contents_id desc";
                }else{
                    $criteria->order="contents_id asc";
                }

好啦,现在去到view页面在listview所在页面添加一个搜索框

<?php $form=$this->beginWidget("CActiveForm",array(
    "id"=>"selectform",
     "action"=>$this->createUrl("contents/admin"),
       "method"=>"GET",
)); 
?>
        <?php echo $form->textField($model,"sortbtn"); ?>
        <?php echo CHtml::submitButton("sort"); ?>
<?php $this->endWidget(); ?>
在注册个javascript语句

$('#selectform').submit(function(){
	$('#contents-grid').yiiListView('update', {
		data: $(this).serialize()
	});
	return false;
});


这样在textfield中输入值的时候就可以看到listview中的数据排序更新了而且不会刷新整个页面,不影响分页


2013/10/19之前写的不够完整且还有写错误

控制器处需要注意,要接受传递过来的值,有时候老是会忘记..

            public function actionCatalogsView(){
                    
                    $model=new Contents('search');
                    $model->unsetAttributes();  // clear any default values
                    if(isset($_GET['Contents']))
                            $model->attributes=$_GET['Contents'];
    //                                        $model->contents_title="mp3";
                    $this->render('catalogsview',array(
                            'model'=>$model,
                    ));
            }
                    
还有就是javascript那里有点错误:listview好像是不能使用上面的方式更新的,需要使用

$cs->registerScript('search',"
$('#selecttor').change(function(){
   var category = $(this).serialize();          
    $.fn.yiiListView.update(
        'contents_listview',
        {data: $(this).serialize()}
    );
});
由于没能记录清除所以总是搞错~~


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值