pentium10 / yii-remember-filters-gridview
这个Yii扩展可以帮助你在导航过程中记住GridView的筛选值,筛选条件将保持不变。
Requires
- php: >=5.3.0
- yiisoft/yii: *
This package is auto-updated.
Last update: 2024-08-23 23:52:57 UTC
README
ERememberFiltersBehavior Yii扩展为CActiveRecord/Model实现添加了一些功能。
它将检测搜索场景,并保存从GridView中获取的筛选条件。当您需要在页面更改时记住它们时,这很有用。对于大量的导航和复杂的筛选,只需几行代码即可激活此功能。
它还支持默认筛选值和记住场景。例如,如果您只想显示“活动产品”,则可以使用此扩展设置默认筛选条件。或者,如果您在不同视图中具有相同的模式,则可以设置不同的场景来记住彼此分离的状态。请参阅高级功能和场景部分下的可选参数。
要求
- Yii 1.1
捐赠
资源
- 扩展页面(别忘了投票支持)
- 报告错误
- 论坛
- 清除筛选条件GridView扩展
安装
我们建议使用Composer安装此扩展。将其添加到您的composer.json
文件中的require
部分
"pentium10/yii-remember-filters-gridview" : "dev-master"
您还需要包含Composer的自动加载器
require_once __DIR__.'/protected/vendor/autoload.php';
用法
步骤 1
要使用此扩展,只需将此文件复制到您的components/目录,将 'import' => 'application.components.ERememberFiltersBehavior', [...] 添加到您的config/main.php中,并将以下代码粘贴到您的模型的behaviors()方法中
public function behaviors() { return array( 'ERememberFiltersBehavior' => array( 'class' => 'application.components.ERememberFiltersBehavior', 'defaults'=>array(), /* optional line */ 'defaultStickOnClear'=>false /* optional line */ ), ); }
步骤 2
您的actionAdmin()必须不使用unsetAttributes(),因为这已被移动到扩展中。
使用此扩展后,actionAdmin可以像这样简单
public function actionAdmin() { $model=new Company('search'); $model->unsetAttributes(); // clear any default values if(isset($_GET['Company'])) $model->attributes=$_GET['Company']; $this->render('admin',array( 'model'=>$model, )); }
一样简单
public function actionAdmin() { $model=new Company('search'); $this->render('admin',array( 'model'=>$model, )); }
高级功能
(如果您使用这些功能,请捐赠)
-
'defaults'是一个键值对数组,将保存您的筛选器默认值。例如,当您最初想显示
活动产品
时,您可以将array('status'=>'1')
设置为。当然,您可以在数组中放置多个默认值。 -
'defaultStickOnClear'=>true可以用来,如果您想在用户清除筛选器时将默认值放回。默认设置为
false
,因此如果用户清除筛选器,则也会清除默认值,用户将获得一个绝对干净的筛选器表单。当设置为true
时,如果表单被清除,则用户将获得一个具有默认值的表单。
场景
(如果您使用这些功能,请捐赠)
您可以使用scenarios
在相同模型的多个状态下记住筛选条件。当您使用相同模型的不同视图,并希望记住彼此分离的状态时,这很有用。
已知限制:视图必须在不同的操作中(不在同一视图中)
要设置场景,请在使用实例化之后添加setRememberScenario调用
示例代码
public function actionAdmin() { $model=new Company('search'); $model->setRememberScenario('scene1'); $this->render('admin',array( 'model'=>$model, )); }
此扩展还有一个配套的清除筛选条件GridView
记住,筛选,cgridview,gridview,存储,重新加载,控制器,模型,行为,接口,小部件,粘性,场景
变更日志
贡献
- Fork 它。
- 创建一个分支(
git checkout -b my_enhancement_name
) - 提交您的更改(
git commit -am "Added Sorting"
) - 推送到分支(
git push origin my_enhancement_name
) - 打开一个 拉取请求
- 享受一杯清新的可口可乐并等待